https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Moose::Kokkos::Vector3< T > Struct Template Reference

#include <KokkosTypes.h>

Public Member Functions

 Vector3 (const libMesh::TypeVector< T > &vector)
 
KOKKOS_INLINE_FUNCTION Vector3 ()
 
KOKKOS_INLINE_FUNCTION Vector3 (const T &scalar)
 
KOKKOS_INLINE_FUNCTION Vector3 (const Vector3< T > &vector)=default
 
KOKKOS_INLINE_FUNCTION Vector3 (const T &x, const T &y, const T &z)
 
KOKKOS_INLINE_FUNCTION Vector3< T > operator- () const
 
KOKKOS_INLINE_FUNCTION T & operator() (unsigned int i)
 
KOKKOS_INLINE_FUNCTION const T & operator() (unsigned int i) const
 
Vector3< T > & operator= (const libMesh::TypeVector< T > &vector)
 
template<typename U >
KOKKOS_INLINE_FUNCTION Vector3< T > & operator= (const Vector3< U > &vector)
 
KOKKOS_INLINE_FUNCTION Vector3< T > & operator= (const Vector3< T > &vector)
 
KOKKOS_INLINE_FUNCTION Vector3< T > & operator= (const T &scalar)
 
template<typename U >
KOKKOS_INLINE_FUNCTION void operator+= (const Vector3< U > &vector)
 
KOKKOS_INLINE_FUNCTION void operator+= (const T &scalar)
 
template<typename U >
KOKKOS_INLINE_FUNCTION void operator-= (const Vector3< U > &vector)
 
KOKKOS_INLINE_FUNCTION void operator-= (const T &scalar)
 
KOKKOS_INLINE_FUNCTION void operator*= (const T &scalar)
 
KOKKOS_INLINE_FUNCTION Real norm () const
 
KOKKOS_INLINE_FUNCTION Real dot_product (const Real3 vector) const
 
KOKKOS_INLINE_FUNCTION Real3 cross_product (const Real3 vector) const
 
KOKKOS_INLINE_FUNCTION Real33 cartesian_product (const Real3 vector) const
 
KOKKOS_INLINE_FUNCTION Real norm () const
 
KOKKOS_INLINE_FUNCTION Real dot_product (const Real3 vector) const
 
KOKKOS_INLINE_FUNCTION Real3 cross_product (const Real3 vector) const
 
KOKKOS_INLINE_FUNCTION Real33 cartesian_product (const Real3 vector) const
 

Public Attributes

v [3]
 

Detailed Description

template<typename T>
struct Moose::Kokkos::Vector3< T >

Definition at line 38 of file KokkosTypes.h.

Constructor & Destructor Documentation

◆ Vector3() [1/5]

template<typename T >
Moose::Kokkos::Vector3< T >::Vector3 ( const libMesh::TypeVector< T > &  vector)

Definition at line 107 of file KokkosTypes.h.

108{
109 v[0] = vector(0);
110 v[1] = vector(1);
111 v[2] = vector(2);
112}

◆ Vector3() [2/5]

template<typename T >
KOKKOS_INLINE_FUNCTION Moose::Kokkos::Vector3< T >::Vector3 ( )
inline

Definition at line 44 of file KokkosTypes.h.

44{ *this = T{}; }

◆ Vector3() [3/5]

template<typename T >
KOKKOS_INLINE_FUNCTION Moose::Kokkos::Vector3< T >::Vector3 ( const T &  scalar)
inline

Definition at line 45 of file KokkosTypes.h.

45{ *this = scalar; }

◆ Vector3() [4/5]

template<typename T >
KOKKOS_INLINE_FUNCTION Moose::Kokkos::Vector3< T >::Vector3 ( const Vector3< T > &  vector)
default

◆ Vector3() [5/5]

template<typename T >
KOKKOS_INLINE_FUNCTION Moose::Kokkos::Vector3< T >::Vector3 ( const T &  x,
const T &  y,
const T &  z 
)

Definition at line 116 of file KokkosTypes.h.

117{
118 v[0] = x;
119 v[1] = y;
120 v[2] = z;
121}

Member Function Documentation

◆ cartesian_product() [1/2]

template<typename T >
KOKKOS_INLINE_FUNCTION Real33 Moose::Kokkos::Vector3< T >::cartesian_product ( const Real3  vector) const

◆ cartesian_product() [2/2]

KOKKOS_INLINE_FUNCTION Real33 Moose::Kokkos::Vector3< Real >::cartesian_product ( const Real3  vector) const

Definition at line 317 of file KokkosTypes.h.

318{
319 Real33 tensor;
320
321 for (unsigned int i = 0; i < Moose::dim; ++i)
322 for (unsigned int j = 0; j < Moose::dim; ++j)
323 tensor(i, j) = v[i] * vector.v[j];
324
325 return tensor;
326}
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition Moose.h:165

◆ cross_product() [1/2]

template<typename T >
KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::Vector3< T >::cross_product ( const Real3  vector) const

◆ cross_product() [2/2]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::Vector3< Real >::cross_product ( const Real3  vector) const

Definition at line 304 of file KokkosTypes.h.

305{
306 Real3 cross;
307
308 cross.v[0] = v[1] * vector.v[2] - v[2] * vector.v[1];
309 cross.v[1] = v[2] * vector.v[0] - v[0] * vector.v[2];
310 cross.v[2] = v[0] * vector.v[1] - v[1] * vector.v[0];
311
312 return cross;
313}
Vector3< Real > Real3
Definition KokkosTypes.h:32

◆ dot_product() [1/2]

template<typename T >
KOKKOS_INLINE_FUNCTION Real Moose::Kokkos::Vector3< T >::dot_product ( const Real3  vector) const

◆ dot_product() [2/2]

KOKKOS_INLINE_FUNCTION Real Moose::Kokkos::Vector3< Real >::dot_product ( const Real3  vector) const

Definition at line 297 of file KokkosTypes.h.

298{
299 return v[0] * vector.v[0] + v[1] * vector.v[1] + v[2] * vector.v[2];
300}

◆ norm() [1/2]

template<typename T >
KOKKOS_INLINE_FUNCTION Real Moose::Kokkos::Vector3< T >::norm ( ) const

◆ norm() [2/2]

KOKKOS_INLINE_FUNCTION Real Moose::Kokkos::Vector3< Real >::norm ( ) const

Definition at line 290 of file KokkosTypes.h.

291{
292 return ::Kokkos::sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
293}

◆ operator()() [1/2]

template<typename T >
KOKKOS_INLINE_FUNCTION T & Moose::Kokkos::Vector3< T >::operator() ( unsigned int  i)
inline

Definition at line 50 of file KokkosTypes.h.

50{ return v[i]; }

◆ operator()() [2/2]

template<typename T >
KOKKOS_INLINE_FUNCTION const T & Moose::Kokkos::Vector3< T >::operator() ( unsigned int  i) const
inline

Definition at line 51 of file KokkosTypes.h.

51{ return v[i]; }

◆ operator*=()

template<typename T >
KOKKOS_INLINE_FUNCTION void Moose::Kokkos::Vector3< T >::operator*= ( const T &  scalar)

Definition at line 218 of file KokkosTypes.h.

219{
220 v[0] *= scalar;
221 v[1] *= scalar;
222 v[2] *= scalar;
223}

◆ operator+=() [1/2]

template<typename T >
KOKKOS_INLINE_FUNCTION void Moose::Kokkos::Vector3< T >::operator+= ( const T &  scalar)

Definition at line 190 of file KokkosTypes.h.

191{
192 v[0] += scalar;
193 v[1] += scalar;
194 v[2] += scalar;
195}

◆ operator+=() [2/2]

template<typename T >
template<typename U >
KOKKOS_INLINE_FUNCTION void Moose::Kokkos::Vector3< T >::operator+= ( const Vector3< U > &  vector)

Definition at line 181 of file KokkosTypes.h.

182{
183 v[0] += vector.v[0];
184 v[1] += vector.v[1];
185 v[2] += vector.v[2];
186}

◆ operator-()

template<typename T >
KOKKOS_INLINE_FUNCTION Vector3< T > Moose::Kokkos::Vector3< T >::operator- ( ) const

Definition at line 136 of file KokkosTypes.h.

137{
138 Vector3<T> vector(*this);
139 vector *= -1;
140
141 return vector;
142}

◆ operator-=() [1/2]

template<typename T >
KOKKOS_INLINE_FUNCTION void Moose::Kokkos::Vector3< T >::operator-= ( const T &  scalar)

Definition at line 209 of file KokkosTypes.h.

210{
211 v[0] -= scalar;
212 v[1] -= scalar;
213 v[2] -= scalar;
214}

◆ operator-=() [2/2]

template<typename T >
template<typename U >
KOKKOS_INLINE_FUNCTION void Moose::Kokkos::Vector3< T >::operator-= ( const Vector3< U > &  vector)

Definition at line 200 of file KokkosTypes.h.

201{
202 v[0] -= vector.v[0];
203 v[1] -= vector.v[1];
204 v[2] -= vector.v[2];
205}

◆ operator=() [1/4]

template<typename T >
Vector3< T > & Moose::Kokkos::Vector3< T >::operator= ( const libMesh::TypeVector< T > &  vector)

Definition at line 125 of file KokkosTypes.h.

126{
127 v[0] = vector(0);
128 v[1] = vector(1);
129 v[2] = vector(2);
130
131 return *this;
132}

◆ operator=() [2/4]

template<typename T >
KOKKOS_INLINE_FUNCTION Vector3< T > & Moose::Kokkos::Vector3< T >::operator= ( const T &  scalar)

Definition at line 169 of file KokkosTypes.h.

170{
171 v[0] = scalar;
172 v[1] = scalar;
173 v[2] = scalar;
174
175 return *this;
176}

◆ operator=() [3/4]

template<typename T >
KOKKOS_INLINE_FUNCTION Vector3< T > & Moose::Kokkos::Vector3< T >::operator= ( const Vector3< T > &  vector)

Definition at line 146 of file KokkosTypes.h.

147{
148 v[0] = vector.v[0];
149 v[1] = vector.v[1];
150 v[2] = vector.v[2];
151
152 return *this;
153}

◆ operator=() [4/4]

template<typename T >
template<typename U >
KOKKOS_INLINE_FUNCTION Vector3< T > & Moose::Kokkos::Vector3< T >::operator= ( const Vector3< U > &  vector)

Definition at line 158 of file KokkosTypes.h.

159{
160 v[0] = vector.v[0];
161 v[1] = vector.v[1];
162 v[2] = vector.v[2];
163
164 return *this;
165}

Member Data Documentation

◆ v

template<typename T >
T Moose::Kokkos::Vector3< T >::v[3]

The documentation for this struct was generated from the following file: