v0.9.0
Classes | Namespaces | Functions
Templates.hpp File Reference

Templates declarations. More...

Go to the source code of this file.

Classes

struct  MoFEM::KeyFromKey< KeyExtractor1, KeyExtractor2 >
 
struct  MoFEM::LtBit< id_type >
 
struct  MoFEM::EqBit< id_type >
 
struct  MoFEM::HashBit< id_type >
 
struct  MoFEM::RefEntExtractor
 Extract entity handle form multi-index container. More...
 

Namespaces

 MoFEM
 implementation of Data Operators for Forces and Sources
 

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<class T , class A >
static FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > MoFEM::getFTensor0FromVec (ublas::vector< T, A > &data)
 Get tensor rank 0 (scalar) form data vector. More...
 
template<>
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > MoFEM::getFTensor0FromVec< double, DoubleAllocator > (ublas::vector< double, DoubleAllocator > &data)
 
template<int Tensor_Dim, class T , class L , class A >
static FTensor::Tensor1< FTensor::PackPtr< T *, 1 >, Tensor_Dim > MoFEM::getFTensor1FromMat (ublas::matrix< T, L, A > &data)
 Get tensor rank 1 (vector) form data matrix. More...
 
template<int Tensor_Dim>
static FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, Tensor_Dim > MoFEM::getFTensor1FromMat (MatrixDouble &data)
 Get tensor rank 1 (vector) form data matrix (specialization) More...
 
template<>
FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 3 > MoFEM::getFTensor1FromMat< 3, double, ublas::row_major, DoubleAllocator > (MatrixDouble &data)
 
template<>
FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 2 > MoFEM::getFTensor1FromMat< 2, double, ublas::row_major, DoubleAllocator > (MatrixDouble &data)
 
template<int Tensor_Dim0, int Tensor_Dim1, class T , class L , class A >
static FTensor::Tensor2< FTensor::PackPtr< T *, 1 >, Tensor_Dim0, Tensor_Dim1 > MoFEM::getFTensor2FromMat (ublas::matrix< T, L, A > &data)
 Get tensor rank 2 (matrix) form data matrix. More...
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 3, 3 > MoFEM::getFTensor2FromMat (MatrixDouble &data)
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 3, 2 > MoFEM::getFTensor2FromMat (MatrixDouble &data)
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 2, 2 > MoFEM::getFTensor2FromMat (MatrixDouble &data)
 
template<int Tensor_Dim0, int Tensor_Dim1>
static FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, Tensor_Dim0, Tensor_Dim1 > MoFEM::getFTensor2FromMat (MatrixDouble &data)
 Get tensor rank 2 (matrix) form data matrix (specialization) More...
 
template<int Tensor_Dim, class T , class L , class A >
static FTensor::Tensor2_symmetric< FTensor::PackPtr< T *, 1 >, Tensor_Dim > MoFEM::getFTensor2SymmetricFromMat (ublas::matrix< T, L, A > &data)
 Get symmetric tensor rank 2 (matrix) form data matrix. More...
 
template<>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 1 >, 3 > MoFEM::getFTensor2SymmetricFromMat (MatrixDouble &data)
 Get symmetric tensor rank 2 form matrix of for dimension 3. More...
 
template<int Tensor_Dim>
static FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 1 >, Tensor_Dim > MoFEM::getFTensor2SymmetricFromMat (MatrixDouble &data)
 Get symmetric tensor rank 2 form matrix. More...
 
template<int DIM>
FTensor::Tensor1< FTensor::PackPtr< double *, DIM >, DIM > MoFEM::getFTensor1FromPtr (double *ptr)
 Make Tensor1 from pointer. More...
 
template<>
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > MoFEM::getFTensor1FromPtr< 3 > (double *ptr)
 
template<int DIM1, int DIM2>
FTensor::Tensor2< FTensor::PackPtr< double *, DIM1 *DIM2 >, DIM1, DIM2 > MoFEM::getFTensor2FromPtr (double *ptr)
 Make Tensor2 from pointer. More...
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > MoFEM::getFTensor2FromPtr< 3, 2 > (double *ptr)
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > MoFEM::getFTensor2FromPtr< 3, 3 > (double *ptr)
 
template<class T >
static double MoFEM::dEterminant (T &t)
 Calculate the determinant of a 3x3 matrix or a tensor of rank 2. 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 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...
 

Detailed Description

Templates declarations.

MoFEM is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

MoFEM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with MoFEM. If not, see http://www.gnu.org/licenses/

Definition in file Templates.hpp.