|
libMesh
|
This class defines a tensor in LIBMESH_DIM dimensional space of type T.
More...
#include <type_tensor.h>
Public Types | |
| typedef T | value_type |
| Helper typedef for C++98 generic programming. | |
| typedef std::tuple< unsigned int, unsigned int > | index_type |
| Helper typedef for generic index programming. | |
Public Member Functions | |
| TypeTensor () | |
| Empty constructor. | |
| template<typename T2 > | |
| TypeTensor (const TypeTensor< T2 > &p) | |
| Copy-constructor. | |
| LIBMESH_DEVICE_INLINE | ~TypeTensor () |
| Destructor. | |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE void | assign (const TypeTensor< T2 > &) |
| Assign to this tensor without creating a temporary. | |
| template<typename Scalar > | |
| LIBMESH_DEVICE_INLINE std::enable_if< ScalarTraits< Scalar >::value, TypeTensor & >::type | operator= (const Scalar &libmesh_dbg_var(p)) |
| Assignment-from-scalar operator. | |
| const T & | operator() (const unsigned int i, const unsigned int j) const |
| T & | operator() (const unsigned int i, const unsigned int j) |
| LIBMESH_DEVICE_INLINE ConstTypeTensorColumn< T > | slice (const unsigned int i) const |
| LIBMESH_DEVICE_INLINE TypeTensorColumn< T > | slice (const unsigned int i) |
| TypeVector< T > | row (const unsigned int r) const |
| LIBMESH_DEVICE_INLINE TypeVector< T > | column (const unsigned int r) const |
| template<typename T2 > | |
| TypeTensor< typename CompareTypes< T, T2 >::supertype > | operator+ (const TypeTensor< T2 > &) const |
| Add another tensor to this tensor. | |
| template<typename T2 > | |
| const TypeTensor< T > & | operator+= (const TypeTensor< T2 > &) |
| Add to this tensor. | |
| template<typename T2 > | |
| void | add (const TypeTensor< T2 > &) |
| Add to this tensor without creating a temporary. | |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE void | add_scaled (const TypeTensor< T2 > &, const T &) |
| Add a scaled tensor to this tensor without creating a temporary. | |
| template<typename T2 > | |
| TypeTensor< typename CompareTypes< T, T2 >::supertype > | operator- (const TypeTensor< T2 > &) const |
| Subtract a tensor from this tensor. | |
| template<typename T2 > | |
| const TypeTensor< T > & | operator-= (const TypeTensor< T2 > &) |
| Subtract from this tensor. | |
| template<typename T2 > | |
| void | subtract (const TypeTensor< T2 > &) |
| Subtract from this tensor without creating a temporary. | |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE void | subtract_scaled (const TypeTensor< T2 > &, const T &) |
| Subtract a scaled value from this tensor without creating a temporary. | |
| TypeTensor< T > | operator- () const |
| template<typename Scalar > | |
| auto | operator* (const Scalar &scalar) const -> typename std::enable_if< ScalarTraits< Scalar >::value, TypeTensor< decltype(T() *scalar)> >::type |
| Multiply this tensor by a scalar value. | |
| template<typename Scalar , typename std::enable_if< ScalarTraits< Scalar >::value, int >::type = 0> | |
| LIBMESH_DEVICE_INLINE const TypeTensor< T > & | operator*= (const Scalar &factor) |
| Multiply this tensor by a scalar value in place. | |
| template<typename Scalar > | |
| std::enable_if< ScalarTraits< Scalar >::value, TypeTensor< typenameCompareTypes< T, Scalar >::supertype > >::type | operator/ (const Scalar &) const |
| Divide each entry of this tensor by a scalar value. | |
| const TypeTensor< T > & | operator/= (const T &) |
| Divide each entry of this tensor by a scalar value. | |
| template<typename T2 > | |
| TypeTensor< typename CompareTypes< T, T2 >::supertype > | operator* (const TypeTensor< T2 > &) const |
| Multiply 2 tensors together, i.e. | |
| template<typename T2 > | |
| const TypeTensor< T > & | operator*= (const TypeTensor< T2 > &) |
| Multiply this tensor by a tensor value in place. | |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE CompareTypes< T, T2 >::supertype | contract (const TypeTensor< T2 > &) const |
| Multiply 2 tensors together to return a scalar, i.e. | |
| template<typename T2 > | |
| TypeVector< typename CompareTypes< T, T2 >::supertype > | operator* (const TypeVector< T2 > &) const |
| Right-multiply this tensor by a vector, i.e. | |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE TypeVector< typename CompareTypes< T, T2 >::supertype > | left_multiply (const TypeVector< T2 > &p) const |
| Left-multiply this tensor by a vector, i.e. | |
| TypeTensor< T > | transpose () const |
| TypeTensor< T > | inverse () const |
| LIBMESH_DEVICE_INLINE void | solve (const TypeVector< T > &b, TypeVector< T > &x) const |
| Solve the 2x2 or 3x3 system of equations A*x = b for x by directly inverting A and multiplying it by b. | |
| auto | norm () const |
| auto | norm_sq () const |
| LIBMESH_DEVICE_INLINE bool | is_zero () const |
| T | det () const |
| T | tr () const |
| LIBMESH_DEVICE_INLINE void | zero () |
| Set all entries of the tensor to 0. | |
| LIBMESH_DEVICE_INLINE bool | operator== (const TypeTensor< T > &rhs) const |
| bool | operator< (const TypeTensor< T > &rhs) const |
| bool | operator> (const TypeTensor< T > &rhs) const |
| void | print (std::ostream &os=libMesh::out) const |
Formatted print to a stream which defaults to libMesh::out. | |
| void | write_unformatted (std::ostream &out_stream, const bool newline=true) const |
Unformatted print to the stream out. | |
| bool | is_hpd (Real rel_tol=TOLERANCE *TOLERANCE) const |
| Returns true if the TypeTensor is Hermitian (or symmetric, when T==Real) and positive-definite to within the provided relative tolerance, false otherwise. | |
| template<typename Scalar > | |
| LIBMESH_DEVICE_INLINE | TypeTensor (const Scalar &xx, const Scalar &xy, const Scalar &xz, const Scalar &yx, const Scalar &yy, const Scalar &yz, const Scalar &zx, const Scalar &zy, typename std::enable_if< ScalarTraits< Scalar >::value, const Scalar >::type &zz) |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE | TypeTensor (const TypeTensor< T2 > &p) |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE TypeTensor< typename CompareTypes< T, T2 >::supertype > | operator+ (const TypeTensor< T2 > &p) const |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE const TypeTensor< T > & | operator+= (const TypeTensor< T2 > &p) |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE void | add (const TypeTensor< T2 > &p) |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE TypeTensor< typename CompareTypes< T, T2 >::supertype > | operator- (const TypeTensor< T2 > &p) const |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE const TypeTensor< T > & | operator-= (const TypeTensor< T2 > &p) |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE void | subtract (const TypeTensor< T2 > &p) |
| template<typename Scalar > | |
| LIBMESH_DEVICE_INLINE auto | operator* (const Scalar &factor) const -> typename std::enable_if< ScalarTraits< Scalar >::value, TypeTensor< decltype(T() *factor)> >::type |
| template<typename Scalar > | |
| LIBMESH_DEVICE_INLINE std::enable_if< ScalarTraits< Scalar >::value, TypeTensor< typenameCompareTypes< T, Scalar >::supertype > >::type | operator/ (const Scalar &factor) const |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE TypeVector< typename CompareTypes< T, T2 >::supertype > | operator* (const TypeVector< T2 > &p) const |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE TypeTensor< typename CompareTypes< T, T2 >::supertype > | operator* (const TypeTensor< T2 > &p) const |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE const TypeTensor< T > & | operator*= (const TypeTensor< T2 > &p) |
| bool | operator< (const TypeTensor< Real > &rhs) const |
| bool | operator> (const TypeTensor< Real > &rhs) const |
| bool | operator< (const TypeTensor< Complex > &rhs) const |
| bool | operator> (const TypeTensor< Complex > &rhs) const |
Protected Member Functions | |
| TypeTensor (const T &xx, const T &xy=0, const T &xz=0, const T &yx=0, const T &yy=0, const T &yz=0, const T &zx=0, const T &zy=0, const T &zz=0) | |
| Constructor-from-T. | |
| template<typename Scalar > | |
| TypeTensor (const Scalar &xx, const Scalar &xy=0, const Scalar &xz=0, const Scalar &yx=0, const Scalar &yy=0, const Scalar &yz=0, const Scalar &zx=0, const Scalar &zy=0, typename std::enable_if< ScalarTraits< Scalar >::value, const Scalar >::type &zz=0) | |
| Constructor-from-Scalar. | |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE | TypeTensor (const TypeVector< T2 > &vx) |
| Constructor. | |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE | TypeTensor (const TypeVector< T2 > &vx, const TypeVector< T2 > &vy) |
| template<typename T2 > | |
| LIBMESH_DEVICE_INLINE | TypeTensor (const TypeVector< T2 > &vx, const TypeVector< T2 > &vy, const TypeVector< T2 > &vz) |
Protected Attributes | |
| T | _coords [LIBMESH_DIM *LIBMESH_DIM] |
The coordinates of the TypeTensor. | |
Friends | |
| template<typename T2 > | |
| class | TypeTensor |
| std::ostream & | operator<< (std::ostream &os, const TypeTensor< T > &t) |
| Formatted print as above but supports the syntax: | |
This class defines a tensor in LIBMESH_DIM dimensional space of type T.
T may either be Real or Complex.
Definition at line 53 of file type_tensor.h.
| typedef std::tuple<unsigned int, unsigned int> libMesh::TypeTensor< T >::index_type |
Helper typedef for generic index programming.
Definition at line 129 of file type_tensor.h.
| typedef T libMesh::TypeTensor< T >::value_type |
Helper typedef for C++98 generic programming.
Definition at line 124 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE libMesh::TypeTensor< T >::TypeTensor | ( | ) |
Empty constructor.
Gives the tensor 0 in LIBMESH_DIM dimensions.
Definition at line 536 of file type_tensor.h.
|
explicitprotected |
Constructor-from-T.
By default sets higher dimensional entries to 0. This is a poor constructor for 2D tensors - if the default arguments are to be overridden it requires that the "xz = 0." etc. arguments also be given explicitly.
Definition at line 559 of file type_tensor.h.
References libMesh::libmesh_ignore().
|
explicitprotected |
Constructor-from-Scalar.
|
protected |
Constructor.
Assigns each vector to a different row of the tensor. We're in LIBMESH_DIM space dimensions and so LIBMESH_DIM many vectors are needed.
Definition at line 665 of file type_tensor.h.
|
protected |
Definition at line 674 of file type_tensor.h.
References libMesh::libmesh_ignore().
|
protected |
Definition at line 691 of file type_tensor.h.
References libMesh::libmesh_ignore().
| libMesh::TypeTensor< T >::TypeTensor | ( | const TypeTensor< T2 > & | p | ) |
Copy-constructor.
| LIBMESH_DEVICE_INLINE libMesh::TypeTensor< T >::~TypeTensor | ( | ) |
| LIBMESH_DEVICE_INLINE libMesh::TypeTensor< T >::TypeTensor | ( | const Scalar & | xx, |
| const Scalar & | xy, | ||
| const Scalar & | xz, | ||
| const Scalar & | yx, | ||
| const Scalar & | yy, | ||
| const Scalar & | yz, | ||
| const Scalar & | zx, | ||
| const Scalar & | zy, | ||
| typename std::enable_if< ScalarTraits< Scalar >::value, const Scalar >::type & | zz | ||
| ) |
Definition at line 605 of file type_tensor.h.
References libMesh::libmesh_ignore().
| LIBMESH_DEVICE_INLINE libMesh::TypeTensor< T >::TypeTensor | ( | const TypeTensor< T2 > & | p | ) |
Definition at line 654 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
| void libMesh::TypeTensor< T >::add | ( | const TypeTensor< T2 > & | ) |
Add to this tensor without creating a temporary.
Referenced by NonlinearNeoHookeCurrentConfig::init_for_qp().
| LIBMESH_DEVICE_INLINE void libMesh::TypeTensor< T >::add | ( | const TypeTensor< T2 > & | p | ) |
Definition at line 869 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
| LIBMESH_DEVICE_INLINE void libMesh::TypeTensor< T >::add_scaled | ( | const TypeTensor< T2 > & | p, |
| const T & | factor | ||
| ) |
Add a scaled tensor to this tensor without creating a temporary.
Definition at line 880 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
Referenced by libMesh::HPCoarsenTest::add_projection(), LargeDeformationElasticity::compute_stresses(), LinearElasticityWithContact::compute_stresses(), libMesh::MeshFunction::hessian(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::System::point_hessian(), and libMesh::HPCoarsenTest::select_refinement().
| LIBMESH_DEVICE_INLINE void libMesh::TypeTensor< T >::assign | ( | const TypeTensor< T2 > & | p | ) |
Assign to this tensor without creating a temporary.
Definition at line 725 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
| LIBMESH_DEVICE_INLINE TypeVector< T > libMesh::TypeTensor< T >::column | ( | const unsigned int | r | ) | const |
Definition at line 808 of file type_tensor.h.
References libMesh::TypeVector< T >::_coords.
Referenced by TypeTensorTest::testRowCol().
| LIBMESH_DEVICE_INLINE CompareTypes< T, T2 >::supertype libMesh::TypeTensor< T >::contract | ( | const TypeTensor< T2 > & | t | ) | const |
Multiply 2 tensors together to return a scalar, i.e.
Multiply 2 tensors together, i.e.
\( \sum_{ij} A_{ij} B_{ij} \) The tensors may contain different numeric types. Also known as the "double inner product" or "double dot product" of tensors.
sum Aij*Bij. The tensors may be of different types.
Definition at line 1297 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
Referenced by libMesh::HPCoarsenTest::add_projection(), libMesh::VariationalSmootherSystem::element_time_derivative(), libMesh::TensorTools::inner_product(), and libMesh::HPCoarsenTest::select_refinement().
| LIBMESH_DEVICE_INLINE T libMesh::TypeTensor< T >::det | ( | ) | const |
Because these are 3x3 tensors at most, we don't do an LU decomposition like DenseMatrix does.
Definition at line 1328 of file type_tensor.h.
Referenced by NonlinearNeoHookeCurrentConfig::calculate_stress(), NonlinearNeoHookeCurrentConfig::calculate_tangent(), libMesh::VariationalSmootherSystem::compute_mesh_quality_info(), LargeDeformationElasticity::compute_stresses(), libMesh::VariationalSmootherSystem::element_time_derivative(), NonlinearNeoHookeCurrentConfig::get_linearized_stiffness(), GradDivExactSolution::grad(), libMeshTest::KokkosTensorOracle::host_leading_determinant(), NonlinearNeoHookeCurrentConfig::init_for_qp(), GradDivExactSolution::operator()(), libMesh::Elem::quality(), libMesh::Hex::quality(), and libMesh::Sphere::Sphere().
| LIBMESH_DEVICE_INLINE TypeTensor< T > libMesh::TypeTensor< T >::inverse | ( | ) | const |
Definition at line 1109 of file type_tensor.h.
References b.
Referenced by NonlinearNeoHookeCurrentConfig::calculate_stress(), libMesh::VariationalSmootherSystem::element_time_derivative(), libMesh::VariationalSmootherSystem::get_target_to_reference_jacobian(), libMeshTest::KokkosTensorOracle::host_leading_inverse(), NonlinearNeoHookeCurrentConfig::init_for_qp(), libMesh::Elem::quality(), and TypeTensorTest::testInverse().
| bool libMesh::TypeTensor< T >::is_hpd | ( | Real | rel_tol = TOLERANCE*TOLERANCE | ) | const |
Returns true if the TypeTensor is Hermitian (or symmetric, when T==Real) and positive-definite to within the provided relative tolerance, false otherwise.
Definition at line 67 of file type_tensor.C.
References libMesh::libmesh_conj(), and std::real().
Referenced by libMeshTest::KokkosTensorOracle::test_tensor_host_only_ops(), and TypeTensorTest::testIsHPD().
| LIBMESH_DEVICE_INLINE bool libMesh::TypeTensor< T >::is_zero | ( | ) | const |
Definition at line 1318 of file type_tensor.h.
Referenced by libMeshTest::KokkosTensorOracle::test_tensor_ops(), and TypeTensorTest::testIsZero().
| LIBMESH_DEVICE_INLINE TypeVector< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::left_multiply | ( | const TypeVector< T2 > & | p | ) | const |
Left-multiply this tensor by a vector, i.e.
matrix-vector product. The tensor and vector may contain different numeric types.
Definition at line 1240 of file type_tensor.h.
Referenced by AzimuthalPeriodicBoundary::get_corresponding_pos().
| LIBMESH_DEVICE_INLINE auto libMesh::TypeTensor< T >::norm | ( | ) | const |
Definition at line 1309 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE auto libMesh::TypeTensor< T >::norm_sq | ( | ) | const |
Definition at line 1378 of file type_tensor.h.
References libMesh::TensorTools::norm_sq(), and libMesh::Real.
Referenced by libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::TensorTools::norm_sq(), libMesh::TensorTools::norm_sq(), and libMesh::HPCoarsenTest::select_refinement().
| LIBMESH_DEVICE_INLINE T & libMesh::TypeTensor< T >::operator() | ( | const unsigned int | i, |
| const unsigned int | j | ||
| ) |
Definition at line 754 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE const T & libMesh::TypeTensor< T >::operator() | ( | const unsigned int | i, |
| const unsigned int | j | ||
| ) | const |
Definition at line 735 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE auto libMesh::TypeTensor< T >::operator* | ( | const Scalar & | factor | ) | const -> typename std::enable_if< ScalarTraits<Scalar>::value, TypeTensor<decltype(T() * factor)>>::type |
Definition at line 994 of file type_tensor.h.
| auto libMesh::TypeTensor< T >::operator* | ( | const Scalar & | scalar | ) | const -> typename std::enable_if< ScalarTraits< Scalar >::value, TypeTensor< decltype(T() *scalar)> >::type |
Multiply this tensor by a scalar value.
| TypeTensor< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::operator* | ( | const TypeTensor< T2 > & | ) | const |
Multiply 2 tensors together, i.e.
matrix-matrix product. The tensors may contain different numeric types.
| LIBMESH_DEVICE_INLINE TypeTensor< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::operator* | ( | const TypeTensor< T2 > & | p | ) | const |
Definition at line 1262 of file type_tensor.h.
| TypeVector< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::operator* | ( | const TypeVector< T2 > & | ) | const |
Right-multiply this tensor by a vector, i.e.
matrix-vector product. The tensor and vector may contain different numeric types.
| LIBMESH_DEVICE_INLINE TypeVector< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::operator* | ( | const TypeVector< T2 > & | p | ) | const |
Definition at line 1226 of file type_tensor.h.
|
inline |
Multiply this tensor by a scalar value in place.
Definition at line 281 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
| const TypeTensor< T > & libMesh::TypeTensor< T >::operator*= | ( | const TypeTensor< T2 > & | ) |
Multiply this tensor by a tensor value in place.
| LIBMESH_DEVICE_INLINE const TypeTensor< T > & libMesh::TypeTensor< T >::operator*= | ( | const TypeTensor< T2 > & | p | ) |
Definition at line 1276 of file type_tensor.h.
| TypeTensor< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::operator+ | ( | const TypeTensor< T2 > & | ) | const |
Add another tensor to this tensor.
| LIBMESH_DEVICE_INLINE TypeTensor< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::operator+ | ( | const TypeTensor< T2 > & | p | ) | const |
Definition at line 823 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
| const TypeTensor< T > & libMesh::TypeTensor< T >::operator+= | ( | const TypeTensor< T2 > & | ) |
Add to this tensor.
| LIBMESH_DEVICE_INLINE const TypeTensor< T > & libMesh::TypeTensor< T >::operator+= | ( | const TypeTensor< T2 > & | p | ) |
Definition at line 857 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE TypeTensor< T > libMesh::TypeTensor< T >::operator- | ( | ) | const |
Definition at line 960 of file type_tensor.h.
| TypeTensor< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::operator- | ( | const TypeTensor< T2 > & | ) | const |
Subtract a tensor from this tensor.
| LIBMESH_DEVICE_INLINE TypeTensor< typename CompareTypes< T, T2 >::supertype > libMesh::TypeTensor< T >::operator- | ( | const TypeTensor< T2 > & | p | ) | const |
Definition at line 893 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
| const TypeTensor< T > & libMesh::TypeTensor< T >::operator-= | ( | const TypeTensor< T2 > & | ) |
Subtract from this tensor.
| LIBMESH_DEVICE_INLINE const TypeTensor< T > & libMesh::TypeTensor< T >::operator-= | ( | const TypeTensor< T2 > & | p | ) |
Definition at line 927 of file type_tensor.h.
| std::enable_if< ScalarTraits< Scalar >::value, TypeTensor< typenameCompareTypes< T, Scalar >::supertype > >::type libMesh::TypeTensor< T >::operator/ | ( | const Scalar & | ) | const |
Divide each entry of this tensor by a scalar value.
| LIBMESH_DEVICE_INLINE std::enable_if< ScalarTraits< Scalar >::value, TypeTensor< typenameCompareTypes< T, Scalar >::supertype > >::type libMesh::TypeTensor< T >::operator/ | ( | const Scalar & | factor | ) | const |
Definition at line 1044 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE const TypeTensor< T > & libMesh::TypeTensor< T >::operator/= | ( | const T & | factor | ) |
Divide each entry of this tensor by a scalar value.
Definition at line 1209 of file type_tensor.h.
| bool libMesh::TypeTensor< Complex >::operator< | ( | const TypeTensor< Complex > & | rhs | ) | const |
Definition at line 157 of file type_tensor.C.
| bool libMesh::TypeTensor< Real >::operator< | ( | const TypeTensor< Real > & | rhs | ) | const |
Definition at line 124 of file type_tensor.C.
| bool libMesh::TypeTensor< T >::operator< | ( | const TypeTensor< T > & | rhs | ) | const |
true if this tensor is "less" than another. Useful for sorting.
|
inline |
Assignment-from-scalar operator.
Used only to zero out vectors.
Definition at line 160 of file type_tensor.h.
References libMesh::TypeTensor< T >::zero().
| LIBMESH_DEVICE_INLINE bool libMesh::TypeTensor< T >::operator== | ( | const TypeTensor< T > & | rhs | ) | const |
true if two tensors are equal, false otherwise. Definition at line 1390 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords, and libMesh::TOLERANCE.
| bool libMesh::TypeTensor< Complex >::operator> | ( | const TypeTensor< Complex > & | rhs | ) | const |
Definition at line 177 of file type_tensor.C.
| bool libMesh::TypeTensor< Real >::operator> | ( | const TypeTensor< Real > & | rhs | ) | const |
Definition at line 140 of file type_tensor.C.
| bool libMesh::TypeTensor< T >::operator> | ( | const TypeTensor< T > & | rhs | ) | const |
true if this tensor is "greater" than another. | void libMesh::TypeTensor< T >::print | ( | std::ostream & | os = libMesh::out | ) | const |
Formatted print to a stream which defaults to libMesh::out.
Definition at line 1421 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE TypeVector< T > libMesh::TypeTensor< T >::row | ( | const unsigned int | r | ) | const |
Definition at line 794 of file type_tensor.h.
References libMesh::TypeVector< T >::_coords.
Referenced by SolutionGradient< dim >::component(), SolutionGradient< dim >::operator()(), and TypeTensorTest::testRowCol().
| LIBMESH_DEVICE_INLINE TypeTensorColumn< T > libMesh::TypeTensor< T >::slice | ( | const unsigned int | i | ) |
Definition at line 784 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE ConstTypeTensorColumn< T > libMesh::TypeTensor< T >::slice | ( | const unsigned int | i | ) | const |
Definition at line 774 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE void libMesh::TypeTensor< T >::solve | ( | const TypeVector< T > & | b, |
| TypeVector< T > & | x | ||
| ) | const |
Solve the 2x2 or 3x3 system of equations A*x = b for x by directly inverting A and multiplying it by b.
x vector. Definition at line 1158 of file type_tensor.h.
References b.
Referenced by InfFERadialTest::base_point(), and libMesh::InfFEMap::inverse_map().
| void libMesh::TypeTensor< T >::subtract | ( | const TypeTensor< T2 > & | ) |
Subtract from this tensor without creating a temporary.
| LIBMESH_DEVICE_INLINE void libMesh::TypeTensor< T >::subtract | ( | const TypeTensor< T2 > & | p | ) |
Definition at line 939 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
| LIBMESH_DEVICE_INLINE void libMesh::TypeTensor< T >::subtract_scaled | ( | const TypeTensor< T2 > & | p, |
| const T & | factor | ||
| ) |
Subtract a scaled value from this tensor without creating a temporary.
Definition at line 950 of file type_tensor.h.
References libMesh::TypeTensor< T >::_coords.
Referenced by libMesh::HPCoarsenTest::select_refinement().
| LIBMESH_DEVICE_INLINE T libMesh::TypeTensor< T >::tr | ( | ) | const |
Definition at line 1351 of file type_tensor.h.
| LIBMESH_DEVICE_INLINE TypeTensor< T > libMesh::TypeTensor< T >::transpose | ( | ) | const |
Definition at line 1079 of file type_tensor.h.
Referenced by assemble_shell(), NonlinearNeoHookeCurrentConfig::calculate_stress(), libMesh::VariationalSmootherSystem::compute_mesh_quality_info(), LargeDeformationElasticity::compute_stresses(), libMesh::VariationalSmootherSystem::element_time_derivative(), libMesh::get_jacobian_at_qp(), GradDivExactSolution::grad(), CurlCurlExactSolution::grad(), libMesh::TensorValue< T >::inverse_extrinsic_rotation_matrix(), libMesh::TensorValue< T >::inverse_intrinsic_rotation_matrix(), GradDivExactSolution::operator()(), CurlCurlExactSolution::operator()(), and TypeTensorTest::testIsHPD().
| void libMesh::TypeTensor< T >::write_unformatted | ( | std::ostream & | out_stream, |
| const bool | newline = true |
||
| ) | const |
Unformatted print to the stream out.
Simply prints the elements of the tensor separated by spaces and newlines.
Definition at line 39 of file type_tensor.C.
References libMesh::libmesh_assert().
| LIBMESH_DEVICE_INLINE void libMesh::TypeTensor< T >::zero | ( | ) |
Set all entries of the tensor to 0.
Definition at line 1368 of file type_tensor.h.
Referenced by libMeshTest::KokkosTensorOracle::build_identity_tensor(), LargeDeformationElasticity::compute_stresses(), LinearElasticityWithContact::compute_stresses(), libMeshTest::KokkosTensorOracle::host_leading_inverse(), NonlinearNeoHookeCurrentConfig::init_for_qp(), libMeshTest::KokkosTensorOracle::make_host_tensor(), libMesh::TensorValue< T >::operator=(), and libMesh::TypeTensor< T >::operator=().
|
friend |
Formatted print as above but supports the syntax:
Definition at line 445 of file type_tensor.h.
Definition at line 56 of file type_tensor.h.
|
protected |
The coordinates of the TypeTensor.
Definition at line 470 of file type_tensor.h.
Referenced by libMesh::TypeTensor< T >::add(), libMesh::TypeTensor< T >::add_scaled(), libMesh::TypeTensor< T >::assign(), libMesh::TypeTensor< T >::contract(), libMesh::TypeTensor< T >::operator*=(), libMesh::TypeTensor< T >::operator+(), libMesh::TypeTensor< T >::operator-(), libMesh::TypeTensor< T >::operator==(), libMesh::TypeTensor< T >::subtract(), libMesh::TypeTensor< T >::subtract_scaled(), and libMesh::TypeTensor< T >::TypeTensor().