https://mooseframework.inl.gov
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)
 
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
 
template<>
KOKKOS_INLINE_FUNCTION Real norm () const
 
template<>
KOKKOS_INLINE_FUNCTION Real dot_product (const Real3 vector) const
 
template<>
KOKKOS_INLINE_FUNCTION Real3 cross_product (const Real3 vector) const
 
template<>
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 29 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 102 of file KokkosTypes.h.

103 {
104  v[0] = vector(0);
105  v[1] = vector(1);
106  v[2] = vector(2);
107 }

◆ Vector3() [2/5]

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

Definition at line 43 of file KokkosTypes.h.

43 { *this = T{}; }

◆ Vector3() [3/5]

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

Definition at line 44 of file KokkosTypes.h.

44 { *this = scalar; }

◆ Vector3() [4/5]

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

Definition at line 45 of file KokkosTypes.h.

45 { *this = vector; }

◆ 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 111 of file KokkosTypes.h.

112 {
113  v[0] = x;
114  v[1] = y;
115  v[2] = z;
116 }

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]

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

Definition at line 312 of file KokkosTypes.h.

313 {
314  Real33 tensor;
315 
316  for (unsigned int i = 0; i < 3; ++i)
317  for (unsigned int j = 0; j < 3; ++j)
318  tensor(i, j) = v[i] * vector.v[j];
319 
320  return tensor;
321 }

◆ 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]

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

Definition at line 299 of file KokkosTypes.h.

300 {
301  Real3 cross;
302 
303  cross.v[0] = v[1] * vector.v[2] - v[2] * vector.v[1];
304  cross.v[1] = v[2] * vector.v[0] - v[0] * vector.v[2];
305  cross.v[2] = v[0] * vector.v[1] - v[1] * vector.v[0];
306 
307  return cross;
308 }
Vector3< Real > Real3
Definition: KokkosTypes.h:31

◆ 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]

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

Definition at line 292 of file KokkosTypes.h.

293 {
294  return v[0] * vector.v[0] + v[1] * vector.v[1] + v[2] * vector.v[2];
295 }

◆ norm() [1/2]

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

◆ norm() [2/2]

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

Definition at line 285 of file KokkosTypes.h.

286 {
287  return ::Kokkos::sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
288 }
CTSub CT_OPERATOR_BINARY CTMul CTCompareLess CTCompareGreater CTCompareEqual _arg template * sqrt(_arg)) *_arg.template D< dtag >()) CT_SIMPLE_UNARY_FUNCTION(tanh

◆ operator()() [1/2]

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

Definition at line 49 of file KokkosTypes.h.

49 { 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 50 of file KokkosTypes.h.

50 { return v[i]; }

◆ operator*=()

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

Definition at line 213 of file KokkosTypes.h.

214 {
215  v[0] *= scalar;
216  v[1] *= scalar;
217  v[2] *= scalar;
218 }

◆ operator+=() [1/2]

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

Definition at line 176 of file KokkosTypes.h.

177 {
178  v[0] += vector.v[0];
179  v[1] += vector.v[1];
180  v[2] += vector.v[2];
181 }

◆ operator+=() [2/2]

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

Definition at line 185 of file KokkosTypes.h.

186 {
187  v[0] += scalar;
188  v[1] += scalar;
189  v[2] += scalar;
190 }

◆ operator-()

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

Definition at line 131 of file KokkosTypes.h.

132 {
133  Vector3<T> vector(*this);
134  vector *= -1;
135 
136  return vector;
137 }

◆ operator-=() [1/2]

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

Definition at line 195 of file KokkosTypes.h.

196 {
197  v[0] -= vector.v[0];
198  v[1] -= vector.v[1];
199  v[2] -= vector.v[2];
200 }

◆ operator-=() [2/2]

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

Definition at line 204 of file KokkosTypes.h.

205 {
206  v[0] -= scalar;
207  v[1] -= scalar;
208  v[2] -= scalar;
209 }

◆ operator=() [1/4]

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

Definition at line 120 of file KokkosTypes.h.

121 {
122  v[0] = vector(0);
123  v[1] = vector(1);
124  v[2] = vector(2);
125 
126  return *this;
127 }

◆ operator=() [2/4]

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

Definition at line 153 of file KokkosTypes.h.

154 {
155  v[0] = vector.v[0];
156  v[1] = vector.v[1];
157  v[2] = vector.v[2];
158 
159  return *this;
160 }

◆ operator=() [3/4]

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

Definition at line 141 of file KokkosTypes.h.

142 {
143  v[0] = vector.v[0];
144  v[1] = vector.v[1];
145  v[2] = vector.v[2];
146 
147  return *this;
148 }

◆ operator=() [4/4]

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

Definition at line 164 of file KokkosTypes.h.

165 {
166  v[0] = scalar;
167  v[1] = scalar;
168  v[2] = scalar;
169 
170  return *this;
171 }

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: