MFEM  v4.4.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
mfem::TElementTransformation< Mesh_t, IR, real_t > Class Template Reference

Element transformation class, templated on a mesh type and an integration rule. It is constructed from a mesh (e.g. class TMesh) and shape evaluator (e.g. class ShapeEvaluator) objects. Allows computation of physical coordinates and Jacobian matrices corresponding to the reference integration points. The desired result is specified through the template subclass Result and stored in an object of the same type. More...

#include <teltrans.hpp>

Collaboration diagram for mfem::TElementTransformation< Mesh_t, IR, real_t >:
[legend]

Classes

struct  Get
 
struct  Result
 Templated struct Result, used to specify the type result that is computed by the TElementTransformation::Eval() method and stored in this structure. More...
 
struct  Result< 0, it_t >
 
struct  Result< 1, it_t >
 
struct  Result< 10, it_t >
 
struct  Result< 2, it_t >
 
struct  Result< 3, it_t >
 
struct  Result< 6, it_t >
 

Public Types

enum  EvalOperations {
  EvalNone = 0, EvalCoordinates = 1, EvalJacobians = 2, LoadAttributes = 4,
  LoadElementIdxs = 8
}
 
typedef real_t real_type
 
typedef Mesh_t::FE_type FE_type
 
typedef Mesh_t::FESpace_type FESpace_type
 
typedef Mesh_t::nodeLayout_type nodeLayout_type
 
typedef ShapeEvaluator
< FE_type, IR, real_t > 
ShapeEval
 
typedef TElementTransformation
< Mesh_t, IR, real_t > 
T_type
 

Public Member Functions

 TElementTransformation (const Mesh_t &mesh, const ShapeEval &eval)
 
template<int EvalOps, typename impl_traits_t >
MFEM_ALWAYS_INLINE void Eval (int el, Result< EvalOps, impl_traits_t > &F)
 Evaluate coordinates and/or Jacobian matrices at quadrature points. More...
 
template<int EvalOps, typename impl_traits_t >
MFEM_ALWAYS_INLINE void EvalSerialized (int el, const typename impl_traits_t::vreal_t *nodeData, Result< EvalOps, impl_traits_t > &F)
 

Static Public Attributes

static const int dim = Mesh_t::dim
 
static const int sdim = Mesh_t::space_dim
 
static const int dofs = FE_type::dofs
 
static const int qpts = IR::qpts
 

Protected Member Functions

template<typename vint_t , int NE>
MFEM_ALWAYS_INLINE void SetAttributes (int el, vint_t(&attrib)[NE]) const
 

Protected Attributes

TTensor3< dofs, sdim, 1, real_t > nodes_dof
 
ShapeEval evaluator
 
FESpace_type fes
 
nodeLayout_type node_layout
 
const real_t * nodes
 
const Element *const * elements
 

Detailed Description

template<typename Mesh_t, typename IR, typename real_t = double>
class mfem::TElementTransformation< Mesh_t, IR, real_t >

Element transformation class, templated on a mesh type and an integration rule. It is constructed from a mesh (e.g. class TMesh) and shape evaluator (e.g. class ShapeEvaluator) objects. Allows computation of physical coordinates and Jacobian matrices corresponding to the reference integration points. The desired result is specified through the template subclass Result and stored in an object of the same type.

Definition at line 33 of file teltrans.hpp.

Member Typedef Documentation

template<typename Mesh_t , typename IR , typename real_t = double>
typedef Mesh_t::FE_type mfem::TElementTransformation< Mesh_t, IR, real_t >::FE_type

Definition at line 37 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
typedef Mesh_t::FESpace_type mfem::TElementTransformation< Mesh_t, IR, real_t >::FESpace_type

Definition at line 38 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
typedef Mesh_t::nodeLayout_type mfem::TElementTransformation< Mesh_t, IR, real_t >::nodeLayout_type

Definition at line 39 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
typedef real_t mfem::TElementTransformation< Mesh_t, IR, real_t >::real_type

Definition at line 36 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
typedef ShapeEvaluator<FE_type,IR,real_t> mfem::TElementTransformation< Mesh_t, IR, real_t >::ShapeEval

Definition at line 40 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
typedef TElementTransformation<Mesh_t,IR,real_t> mfem::TElementTransformation< Mesh_t, IR, real_t >::T_type

Definition at line 42 of file teltrans.hpp.

Member Enumeration Documentation

template<typename Mesh_t , typename IR , typename real_t = double>
enum mfem::TElementTransformation::EvalOperations

Enumeration for the result type of the TElementTransformation::Eval() method. The types can obtained by summing constants from this enumeration and used as a template parameter in struct Result.

Enumerator
EvalNone 
EvalCoordinates 
EvalJacobians 
LoadAttributes 
LoadElementIdxs 

Definition at line 47 of file teltrans.hpp.

Constructor & Destructor Documentation

template<typename Mesh_t , typename IR , typename real_t = double>
mfem::TElementTransformation< Mesh_t, IR, real_t >::TElementTransformation ( const Mesh_t &  mesh,
const ShapeEval eval 
)
inline

Definition at line 110 of file teltrans.hpp.

Member Function Documentation

template<typename Mesh_t , typename IR , typename real_t = double>
template<int EvalOps, typename impl_traits_t >
MFEM_ALWAYS_INLINE void mfem::TElementTransformation< Mesh_t, IR, real_t >::Eval ( int  el,
Result< EvalOps, impl_traits_t > &  F 
)
inline

Evaluate coordinates and/or Jacobian matrices at quadrature points.

Definition at line 121 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
template<int EvalOps, typename impl_traits_t >
MFEM_ALWAYS_INLINE void mfem::TElementTransformation< Mesh_t, IR, real_t >::EvalSerialized ( int  el,
const typename impl_traits_t::vreal_t *  nodeData,
Result< EvalOps, impl_traits_t > &  F 
)
inline

Definition at line 129 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
template<typename vint_t , int NE>
MFEM_ALWAYS_INLINE void mfem::TElementTransformation< Mesh_t, IR, real_t >::SetAttributes ( int  el,
vint_t(&)  attrib[NE] 
) const
inlineprotected

Definition at line 96 of file teltrans.hpp.

Member Data Documentation

template<typename Mesh_t , typename IR , typename real_t = double>
const int mfem::TElementTransformation< Mesh_t, IR, real_t >::dim = Mesh_t::dim
static

Definition at line 77 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
const int mfem::TElementTransformation< Mesh_t, IR, real_t >::dofs = FE_type::dofs
static

Definition at line 79 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
const Element* const* mfem::TElementTransformation< Mesh_t, IR, real_t >::elements
protected

Definition at line 92 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
ShapeEval mfem::TElementTransformation< Mesh_t, IR, real_t >::evaluator
protected

Definition at line 87 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
FESpace_type mfem::TElementTransformation< Mesh_t, IR, real_t >::fes
protected

Definition at line 88 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
nodeLayout_type mfem::TElementTransformation< Mesh_t, IR, real_t >::node_layout
protected

Definition at line 89 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
const real_t* mfem::TElementTransformation< Mesh_t, IR, real_t >::nodes
protected

Definition at line 90 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
TTensor3<dofs,sdim,1,real_t> mfem::TElementTransformation< Mesh_t, IR, real_t >::nodes_dof
protected

Definition at line 84 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
const int mfem::TElementTransformation< Mesh_t, IR, real_t >::qpts = IR::qpts
static

Definition at line 80 of file teltrans.hpp.

template<typename Mesh_t , typename IR , typename real_t = double>
const int mfem::TElementTransformation< Mesh_t, IR, real_t >::sdim = Mesh_t::space_dim
static

Definition at line 78 of file teltrans.hpp.


The documentation for this class was generated from the following file: