#include <tensor_tools.h>
Public Types | |
typedef T | value_type |
typedef unsigned int | index_type |
Public Member Functions | |
TypeVector () | |
template<typename T2 > | |
TypeVector (const TypeVector< T2 > &p) | |
~TypeVector () | |
template<typename T2 > | |
void | assign (const TypeVector< T2 > &) |
template<typename Scalar > | |
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeVector & >::type | operator= (const Scalar &libmesh_dbg_var(p)) |
const T & | operator() (const unsigned int i) const |
const T & | slice (const unsigned int i) const |
T & | operator() (const unsigned int i) |
T & | slice (const unsigned int i) |
template<typename T2 > | |
TypeVector< typename CompareTypes< T, T2 >::supertype > | operator+ (const TypeVector< T2 > &) const |
template<typename T2 > | |
const TypeVector< T > & | operator+= (const TypeVector< T2 > &) |
template<typename T2 > | |
void | add (const TypeVector< T2 > &) |
template<typename T2 > | |
void | add_scaled (const TypeVector< T2 > &, const T) |
template<typename T2 > | |
TypeVector< typename CompareTypes< T, T2 >::supertype > | operator- (const TypeVector< T2 > &) const |
template<typename T2 > | |
const TypeVector< T > & | operator-= (const TypeVector< T2 > &) |
template<typename T2 > | |
void | subtract (const TypeVector< T2 > &) |
template<typename T2 > | |
void | subtract_scaled (const TypeVector< T2 > &, const T) |
TypeVector< T > | operator- () const |
template<typename Scalar > | |
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeVector< typename CompareTypes< T, Scalar >::supertype > >::type | operator* (const Scalar) const |
const TypeVector< T > & | operator*= (const T) |
template<typename Scalar > | |
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeVector< typename CompareTypes< T, Scalar >::supertype > >::type | operator/ (const Scalar) const |
const TypeVector< T > & | operator/= (const T) |
template<typename T2 > | |
CompareTypes< T, T2 >::supertype | operator* (const TypeVector< T2 > &) const |
template<typename T2 > | |
CompareTypes< T, T2 >::supertype | contract (const TypeVector< T2 > &) const |
template<typename T2 > | |
TypeVector< typename CompareTypes< T, T2 >::supertype > | cross (const TypeVector< T2 > &v) const |
TypeVector< T > | unit () const |
Real | size () const |
Real | norm () const |
Real | size_sq () const |
Real | norm_sq () const |
void | zero () |
bool | relative_fuzzy_equals (const TypeVector< T > &rhs, Real tol=TOLERANCE) const |
bool | absolute_fuzzy_equals (const TypeVector< T > &rhs, Real tol=TOLERANCE) const |
bool | operator== (const TypeVector< T > &rhs) const |
bool | operator!= (const TypeVector< T > &rhs) const |
bool | operator< (const TypeVector< T > &rhs) const |
bool | operator<= (const TypeVector< T > &rhs) const |
bool | operator> (const TypeVector< T > &rhs) const |
bool | operator>= (const TypeVector< T > &rhs) const |
void | print (std::ostream &os=libMesh::out) const |
void | write_unformatted (std::ostream &out, const bool newline=true) const |
template<> | |
bool | operator< (const TypeVector< Complex > &rhs) const |
template<> | |
bool | operator<= (const TypeVector< Complex > &rhs) const |
template<> | |
bool | operator> (const TypeVector< Complex > &rhs) const |
template<> | |
bool | operator>= (const TypeVector< Complex > &rhs) const |
Protected Member Functions | |
TypeVector (const T x, const T y=0, const T z=0) | |
template<typename Scalar1 , typename Scalar2 , typename Scalar3 > | |
TypeVector (typename boostcopy::enable_if_c< ScalarTraits< Scalar1 >::value, const Scalar1 >::type x, typename boostcopy::enable_if_c< ScalarTraits< Scalar2 >::value, const Scalar2 >::type y=0, typename boostcopy::enable_if_c< ScalarTraits< Scalar3 >::value, const Scalar3 >::type z=0) | |
template<typename Scalar > | |
TypeVector (const Scalar x, typename boostcopy::enable_if_c< ScalarTraits< Scalar >::value, const Scalar >::type *sfinae=nullptr) | |
Protected Attributes | |
T | _coords [LIBMESH_DIM] |
Friends | |
template<typename T2 > | |
class | TypeVector |
class | TypeTensor< T > |
std::ostream & | operator<< (std::ostream &os, const TypeVector< T > &t) |
This class defines a vector in LIBMESH_DIM
dimensional space of type T. T may either be Real or Complex. Instead use one of the derived types such as Point
or Node
.
Definition at line 30 of file tensor_tools.h.
typedef unsigned int libMesh::TypeVector< T >::index_type |
Helper typedef for generic index programming
Definition at line 110 of file type_vector.h.
typedef T libMesh::TypeVector< T >::value_type |
Helper typedef for C++98 generic programming
Definition at line 105 of file type_vector.h.
|
inline |
Empty constructor. Gives the vector 0 in LIBMESH_DIM
dimensions.
Definition at line 421 of file type_vector.h.
|
inlineprotected |
Constructor-from-T. By default sets higher dimensional entries to 0.
Definition at line 438 of file type_vector.h.
|
inlineprotected |
Constructor-from-scalars. By default sets higher dimensional entries to 0.
Definition at line 461 of file type_vector.h.
|
inlineprotected |
Constructor-from-scalar. Sets higher dimensional entries to 0. Necessary because for some reason the constructor-from-scalars alone is insufficient to let the compiler figure out TypeVector<Complex> v = 0;
Definition at line 491 of file type_vector.h.
|
inline |
|
inline |
|
inline |
true
if two vectors are equal to within an absolute tolerance of tol
. Definition at line 965 of file type_vector.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::LocationMap< T >::find(), libMesh::Elem::parent_bracketing_nodes(), and libMesh::ReplicatedMesh::stitching_helper().
|
inline |
Add to this vector without creating a temporary.
Definition at line 603 of file type_vector.h.
Referenced by libMesh::Elem::centroid(), libMesh::FE< Dim, LAGRANGE_VEC >::inverse_map(), libMesh::LaplaceMeshSmoother::smooth(), and libMesh::MeshTools::Modification::smooth().
|
inline |
Add a scaled value to this vector without creating a temporary.
Definition at line 627 of file type_vector.h.
Referenced by libMesh::MeshRefinement::add_node(), libMesh::HPCoarsenTest::add_projection(), libMesh::System::calculate_norm(), libMesh::Elem::coarsen(), libMesh::MeshFunction::discontinuous_gradient(), libMesh::MeshFunction::gradient(), libMesh::InfFE< Dim, T_radial, T_map >::inverse_map(), libMesh::InfFE< Dim, T_radial, T_map >::map(), libMesh::FE< Dim, LAGRANGE_VEC >::map(), libMesh::FE< Dim, LAGRANGE_VEC >::map_eta(), libMesh::FE< Dim, LAGRANGE_VEC >::map_xi(), libMesh::FE< Dim, LAGRANGE_VEC >::map_zeta(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::Elem::parent_bracketing_nodes(), libMesh::System::point_gradient(), libMesh::HPCoarsenTest::select_refinement(), and libMesh::MeshTools::Modification::smooth().
|
inline |
|
inline |
Definition at line 872 of file type_vector.h.
TypeVector< typename CompareTypes< T, T2 >::supertype > libMesh::TypeVector< T >::cross | ( | const TypeVector< T2 > & | v | ) | const |
v
. Definition at line 882 of file type_vector.h.
Referenced by libMesh::FEXYZMap::compute_face_map(), libMesh::FEMap::compute_face_map(), libMesh::Plane::create_from_three_points(), and libMesh::Quad4::volume().
|
inline |
Definition at line 912 of file type_vector.h.
Referenced by libMesh::Sphere::above_surface(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::System::calculate_norm(), libMesh::InfPrism::contains_point(), libMesh::InfHex::contains_point(), libMesh::FE< Dim, LAGRANGE_VEC >::inverse_map(), libMesh::InfFE< Dim, T_radial, T_map >::inverse_map(), libMesh::Tri3::min_and_max_angle(), libMesh::Tet4::min_and_max_angle(), libMesh::Sphere::on_surface(), libMesh::Tri::quality(), libMesh::MeshTools::Modification::smooth(), and libMesh::Sphere::surface_coords().
|
inline |
Definition at line 943 of file type_vector.h.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::System::calculate_norm(), libMesh::InfQuad4::contains_point(), libMesh::InfPrism::contains_point(), libMesh::InfHex::contains_point(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::Elem::hmax(), libMesh::Elem::hmin(), libMesh::TensorTools::norm_sq(), libMesh::HPCoarsenTest::select_refinement(), libMesh::Sphere::Sphere(), and libMesh::Edge3::volume().
|
inline |
Definition at line 1037 of file type_vector.h.
|
inline |
|
inline |
Definition at line 553 of file type_vector.h.
|
inline |
Multiply this vector by a scalar value.
Definition at line 739 of file type_vector.h.
|
inline |
Definition at line 850 of file type_vector.h.
|
inline |
Multiply this vector by a scalar value.
Definition at line 776 of file type_vector.h.
|
inline |
Add two vectors.
Definition at line 566 of file type_vector.h.
|
inline |
|
inline |
Subtract from this vector.
Definition at line 652 of file type_vector.h.
|
inline |
Definition at line 711 of file type_vector.h.
|
inline |
Subtract from this vector.
Definition at line 678 of file type_vector.h.
|
inline |
Divide each entry of this vector by scalar value.
Definition at line 804 of file type_vector.h.
|
inline |
Divide each entry of this vector by scalar value.
Definition at line 833 of file type_vector.h.
bool libMesh::TypeVector< Complex >::operator< | ( | const TypeVector< Complex > & | rhs | ) | const |
Definition at line 167 of file type_vector.C.
bool libMesh::TypeVector< T >::operator< | ( | const TypeVector< T > & | rhs | ) | const |
true
if this vector is "less" than rhs
.Useful for sorting. Also used for choosing some arbitrary basis function orientations.
Definition at line 109 of file type_vector.C.
bool libMesh::TypeVector< Complex >::operator<= | ( | const TypeVector< Complex > & | rhs | ) | const |
Definition at line 186 of file type_vector.C.
bool libMesh::TypeVector< T >::operator<= | ( | const TypeVector< T > & | rhs | ) | const |
true
if this vector is <= to rhs
.Useful for sorting. Also used for choosing some arbitrary constraint equation directions.
Definition at line 123 of file type_vector.C.
|
inline |
Assignment-from-scalar operator. Used only to zero out vectors.
Definition at line 136 of file type_vector.h.
|
inline |
true
if this(i)==rhs(i) for each component of the vector.absolute_fuzzy_equals()
may be a more appropriate choice. Definition at line 1015 of file type_vector.h.
bool libMesh::TypeVector< Complex >::operator> | ( | const TypeVector< Complex > & | rhs | ) | const |
Definition at line 205 of file type_vector.C.
bool libMesh::TypeVector< T >::operator> | ( | const TypeVector< T > & | rhs | ) | const |
true
if this vector is "greater" than rhs
.Useful for sorting. Also used for choosing some arbitrary basis function orientations.
Definition at line 138 of file type_vector.C.
bool libMesh::TypeVector< Complex >::operator>= | ( | const TypeVector< Complex > & | rhs | ) | const |
Definition at line 224 of file type_vector.C.
bool libMesh::TypeVector< T >::operator>= | ( | const TypeVector< T > & | rhs | ) | const |
true
if this vector is >= rhs
.Useful for sorting. Also used for choosing some arbitrary constraint equation directions.
Definition at line 152 of file type_vector.C.
void libMesh::TypeVector< T >::print | ( | std::ostream & | os = libMesh::out | ) | const |
|
inline |
true
if two vectors are equal to within a relative tolerance of tol
. Definition at line 990 of file type_vector.h.
Referenced by libMesh::Quad4::has_affine_map(), libMesh::Prism6::has_affine_map(), libMesh::Quad8::has_affine_map(), libMesh::Quad9::has_affine_map(), libMesh::Hex8::has_affine_map(), libMesh::Hex27::has_affine_map(), libMesh::Hex20::has_affine_map(), libMesh::Prism18::has_affine_map(), libMesh::Prism15::has_affine_map(), libMesh::Quad4::volume(), and libMesh::Tri6::volume().
|
inline |
Definition at line 901 of file type_vector.h.
Referenced by libMesh::DofMap::allgather_recursive_constraints(), libMesh::DofMap::get_info(), libMesh::FEInterface::inverse_map(), libMesh::FE< Dim, LAGRANGE_VEC >::inverse_map(), libMesh::InfFE< Dim, T_radial, T_map >::inverse_map(), and libMesh::DofMap::scatter_constraints().
|
inline |
Definition at line 932 of file type_vector.h.
|
inline |
Definition at line 143 of file type_vector.h.
|
inline |
Definition at line 149 of file type_vector.h.
|
inline |
Subtract from this vector without creating a temporary.
Definition at line 690 of file type_vector.h.
|
inline |
Subtract a scaled value from this vector without creating a temporary.
Definition at line 701 of file type_vector.h.
Referenced by libMesh::HPCoarsenTest::select_refinement().
TypeVector< T > libMesh::TypeVector< T >::unit | ( | ) | const |
Definition at line 37 of file type_vector.C.
Referenced by libMesh::FEXYZMap::compute_face_map(), libMesh::FEMap::compute_face_map(), libMesh::Plane::create_from_point_normal(), libMesh::Plane::create_from_three_points(), libMesh::MeshTools::Modification::distort(), and libMesh::Sphere::unit_normal().
void libMesh::TypeVector< T >::write_unformatted | ( | std::ostream & | out, |
const bool | newline = true |
||
) | const |
Unformatted print to the stream out
. Simply prints the elements of the vector separated by spaces. Also prints a newline by default, however, this behavior can be controlled with the newline
parameter.
Definition at line 92 of file type_vector.C.
Referenced by libMesh::InfElemBuilder::build_inf_elem(), and libMesh::TecplotIO::write_ascii().
|
inline |
Set all entries of the vector to 0.
Definition at line 921 of file type_vector.h.
Referenced by libMesh::VectorValue< Real >::operator=(), and libMesh::TypeVector< Real >::operator=().
|
friend |
Formatted print as above but supports the syntax:
Definition at line 390 of file type_vector.h.
|
friend |
Definition at line 55 of file type_vector.h.
Definition at line 53 of file type_vector.h.
|
protected |
The coordinates of the TypeVector
.
Definition at line 409 of file type_vector.h.
Referenced by libMesh::TypeTensor< T >::row().