![]() |
v0.15.0 |
Templates declarations. More...
Go to the source code of this file.
Namespaces | |
| namespace | MoFEM |
| implementation of Data Operators for Forces and Sources | |
Macros | |
| #define | FTENSOR_INDEX(DIM, I) I##_FTIndex<DIM> I; |
Typedefs | |
| template<typename T > | |
| using | MoFEM::ShardVec = boost::shared_ptr< std::vector< T > > |
| template<int DIM> | |
| using | MoFEM::i_FTIndex = FTensor::Index< 'i', DIM > |
| template<int DIM> | |
| using | MoFEM::j_FTIndex = FTensor::Index< 'j', DIM > |
| template<int DIM> | |
| using | MoFEM::k_FTIndex = FTensor::Index< 'k', DIM > |
| template<int DIM> | |
| using | MoFEM::l_FTIndex = FTensor::Index< 'l', DIM > |
| template<int DIM> | |
| using | MoFEM::m_FTIndex = FTensor::Index< 'm', DIM > |
| template<int DIM> | |
| using | MoFEM::n_FTIndex = FTensor::Index< 'n', DIM > |
| template<int DIM> | |
| using | MoFEM::o_FTIndex = FTensor::Index< 'o', DIM > |
| template<int DIM> | |
| using | MoFEM::p_FTIndex = FTensor::Index< 'p', DIM > |
| template<int DIM> | |
| using | MoFEM::x_FTIndex = FTensor::Index< 'x', DIM > |
| template<int DIM> | |
| using | MoFEM::y_FTIndex = FTensor::Index< 'y', DIM > |
| template<int DIM> | |
| using | MoFEM::I_FTIndex = FTensor::Index< 'I', DIM > |
| template<int DIM> | |
| using | MoFEM::J_FTIndex = FTensor::Index< 'J', DIM > |
| template<int DIM> | |
| using | MoFEM::K_FTIndex = FTensor::Index< 'K', DIM > |
| template<int DIM> | |
| using | MoFEM::L_FTIndex = FTensor::Index< 'L', DIM > |
| template<int DIM> | |
| using | MoFEM::M_FTIndex = FTensor::Index< 'M', DIM > |
| template<int DIM> | |
| using | MoFEM::N_FTIndex = FTensor::Index< 'N', DIM > |
Functions | |
| template<typename T1 > | |
| auto | MoFEM::getVectorAdaptor (T1 ptr, const size_t n) |
| Get Vector adaptor. | |
| template<typename T1 > | |
| auto | MoFEM::getMatrixAdaptor (T1 ptr, const size_t n, const size_t m) |
| Get Matrix adaptor. | |
| template<class X > | |
| std::string | MoFEM::toString (X x) |
| template<int S = 1, class T , class A > | |
| static auto | MoFEM::getFTensor0FromVec (ublas::vector< T, A > &data) |
| Get tensor rank 0 (scalar) form data vector. | |
| template<int Tensor_Dim, int S = 1, class T , class L , class A > | |
| FTensor::Tensor1< FTensor::PackPtr< T *, S >, Tensor_Dim > | MoFEM::getFTensor1FromMat (ublas::matrix< T, L, A > &data) |
| Get tensor rank 1 (vector) form data matrix. | |
| template<int Tensor_Dim, int S = 1> | |
| auto | MoFEM::getFTensor1FromMat (MatrixDouble &data) |
| Get tensor rank 1 (vector) form data matrix (specialization) | |
| template<int Tensor_Dim1, int Tensor_Dim2> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, Tensor_Dim1, Tensor_Dim2 > | MoFEM::getFTensor2FromMat (MatrixDouble &data) |
| Get tensor rank 2 (matrix) form data matrix. | |
| template<int Tensor_Dim1, int Tensor_Dim2> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, Tensor_Dim1, Tensor_Dim2 > | MoFEM::getFTensor2FromVec (VectorDouble &data) |
| template<> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 1, 1 > | MoFEM::getFTensor2FromVec (VectorDouble &data) |
| template<int Tensor_Dim, int S, class T , class L , class A > | |
| static auto | MoFEM::getFTensor2SymmetricFromMat (ublas::matrix< T, L, A > &data) |
| Get symmetric tensor rank 2 (matrix) form data matrix. | |
| template<int Tensor_Dim, int S = 1> | |
| static auto | MoFEM::getFTensor2SymmetricFromMat (MatrixDouble &data) |
| template<int Tensor_Dim01, int Tensor_Dim23, int S = 1, class T , class L , class A > | |
| static FTensor::Ddg< FTensor::PackPtr< T *, 1 >, Tensor_Dim01, Tensor_Dim23 > | MoFEM::getFTensor4DdgFromMat (ublas::matrix< T, L, A > &data) |
| Get symmetric tensor rank 4 on first two and last indices from form data matrix. | |
| template<int Tensor_Dim01, int Tensor_Dim23, int S = 1> | |
| static auto | MoFEM::getFTensor4DdgFromMat (MatrixDouble &data) |
| template<int Tensor_Dim01, int Tensor_Dim23, int S = 1, class T = double> | |
| static auto | MoFEM::getFTensor4DdgFromPtr (T *ptr) |
| template<int Tensor_Dim01, int Tensor_Dim2, int S = 1, class T , class L , class A > | |
| static FTensor::Dg< FTensor::PackPtr< T *, 1 >, Tensor_Dim01, Tensor_Dim2 > | MoFEM::getFTensor3DgFromMat (ublas::matrix< T, L, A > &data) |
| Get symmetric tensor rank 3 on the first two indices from form data matrix. | |
| template<int Tensor_Dim01, int Tensor_Dim2, int S = 1> | |
| static auto | MoFEM::getFTensor3DgFromMat (MatrixDouble &data) |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3, int S = 1, class T , class L , class A > | |
| static FTensor::Tensor4< FTensor::PackPtr< T *, 1 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > | MoFEM::getFTensor4FromMat (ublas::matrix< T, L, A > &data) |
| Get tensor rank 4 (non symmetric) form data matrix. | |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3, int S = 1> | |
| static auto | MoFEM::getFTensor4FromMat (MatrixDouble &data) |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int S = 1, class T , class L , class A > | |
| static FTensor::Tensor3< FTensor::PackPtr< T *, 1 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > | MoFEM::getFTensor3FromMat (ublas::matrix< T, L, A > &data) |
| Get tensor rank 3 (non symmetries) form data matrix. | |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int S = 1> | |
| static auto | MoFEM::getFTensor3FromMat (MatrixDouble &data) |
| template<int DIM, int S = DIM> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, S >, DIM > | MoFEM::getFTensor1FromPtr (double *ptr) |
| Make Tensor1 from pointer. | |
| template<int DIM, int S = DIM> | |
| FTensor::Tensor1< FTensor::PackPtr< adouble *, S >, DIM > | MoFEM::getFTensor1FromPtr (adouble *ptr) |
| template<int DIM, int S = DIM> | |
| FTensor::Tensor1< FTensor::PackPtr< std::complex< double > *, S >, DIM > | MoFEM::getFTensor1FromPtr (std::complex< double > *ptr) |
| template<int DIM1, int DIM2, int S = DIM1 * DIM2> | |
| auto | MoFEM::getFTensor2FromPtr (double *ptr) |
| Make Tensor2 from pointer. | |
| template<int DIM1, int DIM2, int S = DIM1 * DIM2> | |
| auto | MoFEM::getFTensor2FromPtr (std::complex< double > *ptr) |
| Make Tensor2 from pointer. | |
| template<int DIM1, int DIM2> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, DIM1 *DIM2 >, DIM1, DIM2 > | MoFEM::getFTensor2HVecFromPtr (double *ptr) |
| Make Tensor2 for HVec base from pointer. | |
| template<> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > | MoFEM::getFTensor2HVecFromPtr< 3, 2 > (double *ptr) |
| template<> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > | MoFEM::getFTensor2HVecFromPtr< 3, 3 > (double *ptr) |
| template<int DIM1, int DIM2, int DIM3> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, DIM1 *DIM2 *DIM3 >, DIM1, DIM2, DIM3 > | MoFEM::getFTensor3FromPtr (double *ptr) |
| template<> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, 12 >, 3, 2, 2 > | MoFEM::getFTensor3FromPtr< 3, 2, 2 > (double *ptr) |
| template<> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, 27 >, 3, 3, 3 > | MoFEM::getFTensor3FromPtr< 3, 3, 3 > (double *ptr) |
| template<int DIM1, int DIM2, int DIM3, int DIM4> | |
| FTensor::Tensor4< FTensor::PackPtr< double *, DIM1 *DIM2 *DIM3 *DIM4 >, DIM1, DIM2, DIM3, DIM4 > | MoFEM::getFTensor4FromPtr (double *ptr) |
| template<> | |
| FTensor::Tensor4< FTensor::PackPtr< double *, 81 >, 3, 3, 3, 3 > | MoFEM::getFTensor4FromPtr< 3, 3, 3, 3 > (double *ptr) |
| template<int DIM> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< double *,(DIM *(DIM+1))/2 >, DIM > | MoFEM::getFTensor2SymmetricFromPtr (double *ptr) |
| Make symmetric Tensor2 from pointer. | |
| template<> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 6 >, 3 > | MoFEM::getFTensor2SymmetricFromPtr< 3 > (double *ptr) |
| template<> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 3 >, 2 > | MoFEM::getFTensor2SymmetricFromPtr< 2 > (double *ptr) |
| template<int DIM> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< adouble *,(DIM *(DIM+1))/2 >, DIM > | MoFEM::getFTensor2SymmetricFromPtr (adouble *ptr) |
| Make symmetric Tensor2 from pointer. | |
| template<> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< adouble *, 6 >, 3 > | MoFEM::getFTensor2SymmetricFromPtr< 3 > (adouble *ptr) |
| template<> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< adouble *, 3 >, 2 > | MoFEM::getFTensor2SymmetricFromPtr< 2 > (adouble *ptr) |
| template<int DIM> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, DIM *DIM >, DIM > | MoFEM::getFTensor2SymmetricLowerFromPtr (double *ptr) |
| Make symmetric Tensor2 from pointer, taking lower triangle of matrix. | |
| template<> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 9 >, 3 > | MoFEM::getFTensor2SymmetricLowerFromPtr< 3 > (double *ptr) |
| template<> | |
| FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 4 >, 2 > | MoFEM::getFTensor2SymmetricLowerFromPtr< 2 > (double *ptr) |
| template<int DIM, int S> | |
| auto | MoFEM::getFTensor1FromArray (VectorDouble &data) |
| Get FTensor1 from array. | |
| template<int DIM, int S = 0> | |
| auto | MoFEM::getFTensor1FromArray (VectorDouble3 &data) |
| Get FTensor1 from array. | |
| template<> | |
| auto | MoFEM::getFTensor1FromArray< 3, 0 > (VectorDouble3 &data) |
| template<int DIM, int S> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, S >, DIM > | MoFEM::getFTensor1FromMat (MatrixDouble &data, const size_t rr) |
| template<> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 2 > | MoFEM::getFTensor1FromMat (MatrixDouble &data, const size_t rr) |
| template<> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 3 > | MoFEM::getFTensor1FromMat (MatrixDouble &data, const size_t rr) |
| template<> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 4 > | MoFEM::getFTensor1FromMat (MatrixDouble &data, const size_t rr) |
| template<> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 9 > | MoFEM::getFTensor1FromMat (MatrixDouble &data, const size_t rr) |
| template<int DIM, int S> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, S >, DIM > | MoFEM::getFTensor1FromArrayDiag (MatrixDouble &data, const size_t rr) |
| Get FTensor1 from array. | |
| template<> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, 2 >, 2 > | MoFEM::getFTensor1FromArrayDiag (MatrixDouble &data, const size_t rr) |
| template<> | |
| FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > | MoFEM::getFTensor1FromArrayDiag (MatrixDouble &data, const size_t rr) |
| template<int DIM1, int DIM2, int S> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, S >, DIM1, DIM2 > | MoFEM::getFTensor2FromArray (MatrixDouble &data, const size_t rr, const size_t cc=0) |
| template<int DIM1, int DIM2> | |
| FTensor::Tensor2< double *, DIM1, DIM2 > | MoFEM::getFTensor2FromArray (MatrixDouble &data, const size_t rr, const size_t cc, const int ss) |
| template<int S, typename T , typename L , typename A > | |
| auto | MoFEM::getFTensor2FromArray2by2 (ublas::matrix< T, L, A > &data, const FTensor::Number< S > &, const size_t rr, const size_t cc=0) |
| template<int S, typename T , typename L , typename A > | |
| auto | MoFEM::getFTensor2FromArray3by3 (ublas::matrix< T, L, A > &data, const FTensor::Number< S > &, const size_t rr, const size_t cc=0) |
| template<int DIM1, int DIM2, int S> | |
| auto | MoFEM::getFTensor2FromArray (MatrixADouble &data, const size_t rr) |
| template<int DIM, typename T > | |
| auto | MoFEM::getVoigtVec (T &t_mat) |
| template<int DIM, typename T > | |
| auto | MoFEM::getVoigtVecSymm (T &t_mat) |
| template<typename T > | |
| auto | MoFEM::getVoigtVecAxisymm (T &t_mat, const double hoop_term) |
| template<typename T > | |
| auto | MoFEM::getVoigtVecSymmAxisymm (T &t_mat, const double hoop_term) |
| template<int DIM, class T > | |
| auto | MoFEM::to_non_symm (const FTensor::Tensor2_symmetric< T, DIM > &symm) |
| MoFEMErrorCode | MoFEM::computeMatrixInverse (MatrixDouble &mat) |
| compute matrix inverse with lapack dgetri | |
| MoFEMErrorCode | MoFEM::solveLinearSystem (MatrixDouble &mat, VectorDouble &f) |
| solve linear system with lapack dgesv | |
| MoFEMErrorCode | MoFEM::solveLinearSystem (const MatrixDouble &mat, VectorDouble &f) |
| Solve linear system of equations using Lapack. | |
| MoFEMErrorCode | MoFEM::computeEigenValuesSymmetric (const MatrixDouble &mat, VectorDouble &eig, MatrixDouble &eigen_vec) |
| compute eigenvalues of a symmetric matrix using lapack dsyev | |
| template<int DIM, typename T1 , typename T2 > | |
| MoFEMErrorCode | MoFEM::computeEigenValuesSymmetric (FTensor::Tensor2< T1, DIM, DIM > &eigen_vec, FTensor::Tensor1< T2, DIM > &eig) |
| compute eigenvalues of a symmetric matrix using lapack dsyev | |
| template<int DIM, typename T1 , typename T2 , typename T3 > | |
| MoFEMErrorCode | MoFEM::computeEigenValuesSymmetric (const FTensor::Tensor2_symmetric< T1, DIM > &mat, FTensor::Tensor1< T2, DIM > &eig, FTensor::Tensor2< T3, DIM, DIM > &eigen_vec) |
| compute eigenvalues of a symmetric tensor using lapack dsyev | |
| template<typename T > | |
| static auto | MoFEM::determinantTensor3by3 (T &t) |
| Calculate the determinant of a 3x3 matrix or a tensor of rank 2. | |
| template<typename T > | |
| static auto | MoFEM::determinantTensor2by2 (T &t) |
| Calculate the determinant of a 2x2 matrix or a tensor of rank 2. | |
| template<typename T , int DIM> | |
| static auto | MoFEM::determinantTensor (FTensor::Tensor2< T, DIM, DIM > &t) |
| Calculate the determinant of a tensor of rank DIM. | |
| template<typename T , int DIM> | |
| static auto | MoFEM::determinantTensor (FTensor::Tensor2_symmetric< T, DIM > &t) |
| Calculate the determinant of a tensor of rank DIM. | |
| template<int Tensor_Dim, class T , class L , class A > | |
| MoFEMErrorCode | MoFEM::invertTensor3by3 (ublas::matrix< T, L, A > &jac_data, ublas::vector< T, A > &det_data, ublas::matrix< T, L, A > &inv_jac_data) |
| Calculate inverse of tensor rank 2 at integration points. | |
| template<> | |
| MoFEMErrorCode | MoFEM::invertTensor3by3< 3, double, ublas::row_major, DoubleAllocator > (MatrixDouble &jac_data, VectorDouble &det_data, MatrixDouble &inv_jac_data) |
| template<class T1 , class T2 > | |
| MoFEMErrorCode | MoFEM::determinantTensor3by3 (T1 &t, T2 &det) |
| Calculate determinant 3 by 3. | |
| template<class T1 , class T2 > | |
| MoFEMErrorCode | MoFEM::determinantTensor2by2 (T1 &t, T2 &det) |
| Calculate determinant 2 by 2. | |
| template<class T1 , class T2 , class T3 > | |
| MoFEMErrorCode | MoFEM::invertTensor3by3 (T1 &t, T2 &det, T3 &inv_t) |
| Calculate matrix inverse 3 by 3. | |
| template<class T1 , class T2 , class T3 > | |
| MoFEMErrorCode | MoFEM::invertTensor2by2 (T1 &t, T2 &det, T3 &inv_t) |
| Calculate matrix inverse 2 by 2. | |
| template<typename T1 , typename T2 , typename T3 , int DIM> | |
| static MoFEMErrorCode | MoFEM::invertTensor (FTensor::Tensor2< T1, DIM, DIM > &t, T2 &det, FTensor::Tensor2< T3, DIM, DIM > &inv_t) |
| template<typename T1 , typename T2 , typename T3 , int DIM> | |
| static MoFEMErrorCode | MoFEM::invertTensor (FTensor::Tensor2_symmetric< T1, DIM > &t, T2 &det, FTensor::Tensor2_symmetric< T3, DIM > &inv_t) |
| template<typename Extractor , typename Iterator > | |
| moab::Range::iterator | MoFEM::insertOrdered (Range &r, Extractor, Iterator begin_iter, Iterator end_iter) |
| Insert ordered mofem multi-index into range. | |
| template<typename MI , typename MO = Modify_change_nothing> | |
| MoFEMErrorCode | MoFEM::reconstructMultiIndex (const MI &mi, MO &&mo=Modify_change_nothing()) |
| Template used to reconstruct multi-index. | |
| auto | MoFEM::get_temp_meshset_ptr (moab::Interface &moab) |
| Create smart pointer to temporary meshset. | |
| auto | MoFEM::id_from_handle (const EntityHandle h) |
| auto | MoFEM::type_from_handle (const EntityHandle h) |
| get type from entity handle | |
| auto | MoFEM::ent_form_type_and_id (const EntityType type, const EntityID id) |
| get entity handle from type and id | |
| auto | MoFEM::dimension_from_handle (const EntityHandle h) |
| get entity dimension form handle | |
| auto | MoFEM::type_name_from_handle (const EntityHandle h) |
| get entity type name from handle | |
| auto | MoFEM::field_bit_from_bit_number (const int bit_number) |
| get field bit id from bit number | |
| template<typename I > | |
| auto | MoFEM::rangeInserter (const I f, const I s, boost::function< bool(I it)> tester, boost::function< MoFEMErrorCode(I f, I s)> inserter) |
| Insert ranges. | |
| template<typename Dest = void, typename... Arg> | |
| constexpr auto | MoFEM::make_array (Arg &&...arg) |
| Create Array. | |
Templates declarations.
Definition in file Templates.hpp.
Definition at line 2109 of file Templates.hpp.