COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes | List of all members
ElementData< VariablesT, VariablesEtypeTT, SupportEtypeT, EquationVariablesInT > Class Template Reference

#include <ElementData.hpp>

Classes

struct  DataType
 Return the type of the data stored for variable I (I being an Integral Constant in the boost::mpl sense) More...
 
struct  DeleteVariablesData
 Delete stored per-variable data. More...
 
struct  FillRhs
 Set the element on each stored data item. More...
 
struct  InitVariablesData
 Initializes the pointers in a VariablesDataT fusion sequence. More...
 
struct  PrecomputeData
 Precompute variables data. More...
 
struct  SetElement
 Set the element on each stored data item. More...
 
struct  VariableType
 Return the type of the stored variable I (I being an Integral Constant in the boost::mpl sense) More...
 

Public Types

typedef SupportEtypeT SupportShapeFunction
 Shape function for the support. More...
 
typedef MatrixSizePerVar< VariablesT, VariablesEtypeTT, SupportEtypeT >::type MatrixSizesT
 Element matrix size per var. More...
 
typedef FilterEquationVars< EquationVariablesInT, VariablesEtypeTT, SupportEtypeT >::type EquationVariablesT
 Filter out element-based fields from the equation variables. More...
 
typedef ElementMatrixSize< MatrixSizesT, EquationVariablesT >::type EMatrixSizeT
 Size for the element matrix. More...
 
typedef Eigen::Matrix< Real, EMatrixSizeT::value, EMatrixSizeT::value > ElementMatrixT
 Type for the element matrix (combined for all equations) More...
 
typedef Eigen::Matrix< Real, EMatrixSizeT::value, 1 > ElementVectorT
 Type for the element vector (combined for all equations) More...
 
typedef boost::fusion::result_of::as_vector< typename boost::mpl::transform< typename boost::mpl::copy< boost::mpl::range_c< int, 0, NbVarsT::value >, boost::mpl::back_inserter< boost::mpl::vector_c< Uint > > >::type, MakeVarData< VariablesT, SupportEtypeT, VariablesEtypeTT, EquationVariablesT, MatrixSizesT, EMatrixSizeT > >::type >::type VariablesDataT
 
typedef boost::fusion::filter_view< VariablesDataT, IsEquationDataEquationDataT
 A view of only the data used in the element matrix. More...
 
typedef GeometricSupport< SupportEtypeT > SupportT
 

Public Member Functions

 ElementData (VariablesT &variables, mesh::Elements &elements)
 
void init_block_accumulator (boost::mpl::false_)
 
void init_block_accumulator (boost::mpl::true_)
 
 ~ElementData ()
 
void set_element (const Uint element_idx)
 Update element index. More...
 
void update_blocks (boost::mpl::false_)
 Update block accumulator only if a system of equations is accessed in the expressions. More...
 
void update_blocks (boost::mpl::true_)
 
template<typename ExprT >
void precompute_element_matrices (const typename SupportEtypeT::MappedCoordsT &mapped_coords, const ExprT &e)
 Precompute element matrices, for the variables found in expr. More...
 
template<typename I >
DataType< I >::type & var_data (const I &)
 Return the data stored at index I. More...
 
template<typename I >
const VariableType< I >::type & variable (const I &)
 Return the variable stored at index I. More...
 
SupportTsupport ()
 Get the data associated with the geometric support. More...
 
const SupportTsupport () const
 
ElementMatrixTelement_matrix (const int i)
 Retrieve the element matrix at index i. More...
 
ElementVectorTelement_vector (const int i)
 Retrieve the element vector at index i. More...
 
ElementVectorTelement_rhs ()
 Retrieve the element RHS. More...
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef boost::fusion::result_of::size< VariablesT >::type NbVarsT
 Number of variales that we have stored. More...
 
math::LSS::BlockAccumulator block_accumulator
 Stores a mutable block accululator, always up-to-date with index mapping and correct size. More...
 
bool indices_converted
 

Static Public Attributes

static const Uint dimension = SupportShapeFunction::dimension
 The dimension of the problem. More...
 
static const Uint nb_lss_nodes = detail::GetNbNodes<EquationDataT>::value
 

Private Attributes

VariablesTm_variables
 Variables used in the expression. More...
 
mesh::Elementsm_elements
 Referred Elements. More...
 
SupportT m_support
 Data for the geometric support. More...
 
VariablesDataT m_variables_data
 Data associated with each numbered variable. More...
 
Uint m_element_idx
 
ElementMatrixT m_element_matrices [CF3_PROTO_MAX_ELEMENT_MATRICES]
 
ElementVectorT m_element_vectors [CF3_PROTO_MAX_ELEMENT_MATRICES]
 
ElementVectorT m_element_rhs
 
const EquationDataT m_equation_data
 Filtered view of the data associated with equation variables. More...
 

Detailed Description

template<typename VariablesT, typename VariablesEtypeTT, typename SupportEtypeT, typename EquationVariablesInT>
class cf3::solver::actions::Proto::ElementData< VariablesT, VariablesEtypeTT, SupportEtypeT, EquationVariablesInT >

Stores data that is used when looping over elements to execute Proto expressions. "Data" is meant here in the boost::proto sense, i.e. it is intended for use as 3rd argument for proto transforms. VariablesT is a fusion sequence containing each unique variable in the expression VariablesDataT is a fusion sequence of pointers to the data (also in proto sense) associated with each of the variables SupportEtypeT is the shape function for the geometric support

Definition at line 877 of file ElementData.hpp.

Member Typedef Documentation

typedef Eigen::Matrix<Real, EMatrixSizeT::value, EMatrixSizeT::value> ElementMatrixT

Type for the element matrix (combined for all equations)

Definition at line 900 of file ElementData.hpp.

typedef Eigen::Matrix<Real, EMatrixSizeT::value, 1> ElementVectorT

Type for the element vector (combined for all equations)

Definition at line 903 of file ElementData.hpp.

Size for the element matrix.

Definition at line 897 of file ElementData.hpp.

typedef boost::fusion::filter_view< VariablesDataT, IsEquationData > EquationDataT

A view of only the data used in the element matrix.

Definition at line 915 of file ElementData.hpp.

typedef FilterEquationVars<EquationVariablesInT, VariablesEtypeTT, SupportEtypeT>::type EquationVariablesT

Filter out element-based fields from the equation variables.

Definition at line 894 of file ElementData.hpp.

typedef MatrixSizePerVar<VariablesT, VariablesEtypeTT, SupportEtypeT>::type MatrixSizesT

Element matrix size per var.

Definition at line 891 of file ElementData.hpp.

typedef SupportEtypeT SupportShapeFunction

Shape function for the support.

Definition at line 885 of file ElementData.hpp.

typedef GeometricSupport<SupportEtypeT> SupportT

Definition at line 1022 of file ElementData.hpp.

typedef boost::fusion::result_of::as_vector< typename boost::mpl::transform < typename boost::mpl::copy<boost::mpl::range_c<int,0,NbVarsT::value>, boost::mpl::back_inserter< boost::mpl::vector_c<Uint> > >::type, MakeVarData<VariablesT, SupportEtypeT, VariablesEtypeTT, EquationVariablesT, MatrixSizesT, EMatrixSizeT> >::type >::type VariablesDataT

Definition at line 912 of file ElementData.hpp.

Constructor & Destructor Documentation

ElementData ( VariablesT variables,
mesh::Elements elements 
)
inline

Definition at line 919 of file ElementData.hpp.

~ElementData ( )
inline

Definition at line 952 of file ElementData.hpp.

Member Function Documentation

ElementMatrixT& element_matrix ( const int  i)
inline

Retrieve the element matrix at index i.

Definition at line 1050 of file ElementData.hpp.

ElementVectorT& element_rhs ( )
inline

Retrieve the element RHS.

Definition at line 1062 of file ElementData.hpp.

ElementVectorT& element_vector ( const int  i)
inline

Retrieve the element vector at index i.

Definition at line 1056 of file ElementData.hpp.

void init_block_accumulator ( boost::mpl::false_  )
inline

Definition at line 936 of file ElementData.hpp.

void init_block_accumulator ( boost::mpl::true_  )
inline

Definition at line 948 of file ElementData.hpp.

void precompute_element_matrices ( const typename SupportEtypeT::MappedCoordsT &  mapped_coords,
const ExprT &  e 
)
inline

Precompute element matrices, for the variables found in expr.

Definition at line 980 of file ElementData.hpp.

void set_element ( const Uint  element_idx)
inline

Update element index.

Definition at line 958 of file ElementData.hpp.

SupportT& support ( )
inline

Get the data associated with the geometric support.

Definition at line 1039 of file ElementData.hpp.

const SupportT& support ( ) const
inline

Definition at line 1044 of file ElementData.hpp.

void update_blocks ( boost::mpl::false_  )
inline

Update block accumulator only if a system of equations is accessed in the expressions.

Definition at line 968 of file ElementData.hpp.

void update_blocks ( boost::mpl::true_  )
inline

Definition at line 974 of file ElementData.hpp.

DataType<I>::type& var_data ( const I &  )
inline

Return the data stored at index I.

Definition at line 1026 of file ElementData.hpp.

const VariableType<I>::type& variable ( const I &  )
inline

Return the variable stored at index I.

Definition at line 1033 of file ElementData.hpp.

Member Data Documentation

math::LSS::BlockAccumulator block_accumulator
mutable

Stores a mutable block accululator, always up-to-date with index mapping and correct size.

Definition at line 1065 of file ElementData.hpp.

const Uint dimension = SupportShapeFunction::dimension
static

The dimension of the problem.

Definition at line 888 of file ElementData.hpp.

bool indices_converted
mutable

Definition at line 1069 of file ElementData.hpp.

Uint m_element_idx
private

Definition at line 1084 of file ElementData.hpp.

ElementMatrixT m_element_matrices[CF3_PROTO_MAX_ELEMENT_MATRICES]
private

Definition at line 1086 of file ElementData.hpp.

ElementVectorT m_element_rhs
private

Definition at line 1088 of file ElementData.hpp.

ElementVectorT m_element_vectors[CF3_PROTO_MAX_ELEMENT_MATRICES]
private

Definition at line 1087 of file ElementData.hpp.

mesh::Elements& m_elements
private

Referred Elements.

Definition at line 1076 of file ElementData.hpp.

const EquationDataT m_equation_data
private

Filtered view of the data associated with equation variables.

Definition at line 1091 of file ElementData.hpp.

SupportT m_support
private

Data for the geometric support.

Definition at line 1079 of file ElementData.hpp.

VariablesT& m_variables
private

Variables used in the expression.

Definition at line 1073 of file ElementData.hpp.

VariablesDataT m_variables_data
private

Data associated with each numbered variable.

Definition at line 1082 of file ElementData.hpp.

const Uint nb_lss_nodes = detail::GetNbNodes<EquationDataT>::value
static

Definition at line 917 of file ElementData.hpp.

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef boost::fusion::result_of::size<VariablesT>::type NbVarsT

Number of variales that we have stored.

Definition at line 882 of file ElementData.hpp.


The documentation for this class was generated from the following file:
Send comments to:
COOLFluiD Web Admin