v0.14.0 |
Templates declarations. More...
Go to the source code of this file.
Namespaces | |
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::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. More... | |
template<typename T1 > | |
auto | MoFEM::getMatrixAdaptor (T1 ptr, const size_t n, const size_t m) |
Get Matrix adaptor. More... | |
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. More... | |
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. More... | |
template<int Tensor_Dim, int S = 1> | |
auto | MoFEM::getFTensor1FromMat (MatrixDouble &data) |
Get tensor rank 1 (vector) form data matrix (specialization) More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
template<int DIM1, int DIM2, int S = DIM1 * DIM2> | |
auto | MoFEM::getFTensor2FromPtr (std::complex< double > *ptr) |
Make Tensor2 from pointer. More... | |
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. More... | |
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 DIM> | |
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *,(DIM *(DIM+1))/2 >, DIM > | MoFEM::getFTensor2SymmetricFromPtr (double *ptr) |
Make symmetric Tensor2 from pointer. More... | |
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. More... | |
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. More... | |
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. More... | |
template<int DIM, int S = 0> | |
auto | MoFEM::getFTensor1FromArray (VectorDouble3 &data) |
Get FTensor1 from array. More... | |
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<int DIM, int S> | |
FTensor::Tensor1< FTensor::PackPtr< double *, S >, DIM > | MoFEM::getFTensor1FromArrayDiag (MatrixDouble &data, const size_t rr) |
Get FTensor1 from array. More... | |
template<> | |
FTensor::Tensor1< FTensor::PackPtr< double *, 2 >, 2 > | 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) |
MoFEMErrorCode | MoFEM::computeMatrixInverse (MatrixDouble &mat) |
compute matrix inverse with lapack dgetri More... | |
MoFEMErrorCode | MoFEM::solveLinearSystem (MatrixDouble &mat, VectorDouble &f) |
solve linear system with lapack dgesv More... | |
MoFEMErrorCode | MoFEM::solveLinearSystem (const MatrixDouble &mat, VectorDouble &f) |
Solve linear system of equations using Lapack. More... | |
MoFEMErrorCode | MoFEM::computeEigenValuesSymmetric (const MatrixDouble &mat, VectorDouble &eig, MatrixDouble &eigen_vec) |
compute eigenvalues of a symmetric matrix using lapack dsyev More... | |
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 More... | |
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 More... | |
template<typename T > | |
static auto | MoFEM::determinantTensor3by3 (T &t) |
Calculate the determinant of a 3x3 matrix or a tensor of rank 2. More... | |
template<typename T > | |
static auto | MoFEM::determinantTensor2by2 (T &t) |
Calculate the determinant of a 2x2 matrix or a tensor of rank 2. More... | |
template<typename T , int DIM> | |
static auto | MoFEM::determinantTensor (FTensor::Tensor2< T, DIM, DIM > &t) |
Calculate the determinant of a tensor of rank DIM. More... | |
template<typename T , int DIM> | |
static auto | MoFEM::determinantTensor (FTensor::Tensor2_symmetric< T, DIM > &t) |
Calculate the determinant of a tensor of rank DIM. More... | |
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. More... | |
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. More... | |
template<class T1 , class T2 > | |
MoFEMErrorCode | MoFEM::determinantTensor2by2 (T1 &t, T2 &det) |
Calculate determinant 2 by 2. More... | |
template<class T1 , class T2 , class T3 > | |
MoFEMErrorCode | MoFEM::invertTensor3by3 (T1 &t, T2 &det, T3 &inv_t) |
Calculate matrix inverse 3 by 3. More... | |
template<class T1 , class T2 , class T3 > | |
MoFEMErrorCode | MoFEM::invertTensor2by2 (T1 &t, T2 &det, T3 &inv_t) |
Calculate matrix inverse 2 by 2. More... | |
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. More... | |
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. More... | |
auto | MoFEM::get_temp_meshset_ptr (moab::Interface &moab) |
Create smart pointer to temporary meshset. More... | |
auto | MoFEM::id_from_handle (const EntityHandle h) |
auto | MoFEM::type_from_handle (const EntityHandle h) |
get type from entity handle More... | |
auto | MoFEM::ent_form_type_and_id (const EntityType type, const EntityID id) |
get entity handle from type and id More... | |
auto | MoFEM::dimension_from_handle (const EntityHandle h) |
get entity dimension form handle More... | |
auto | MoFEM::type_name_from_handle (const EntityHandle h) |
get entity type name from handle More... | |
auto | MoFEM::field_bit_from_bit_number (const int bit_number) |
get field bit id from bit number More... | |
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. More... | |
template<typename Dest = void, typename... Arg> | |
constexpr auto | MoFEM::make_array (Arg &&...arg) |
Create Array. More... | |
Templates declarations.
Definition in file Templates.hpp.
Definition at line 2011 of file Templates.hpp.