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 Member Functions | Private Attributes | List of all members
EtypeTVariableData< ETYPE, SupportEtypeT, Dim, IsEquationVar > Class Template Reference

Data associated with field variables. More...

#include <ElementData.hpp>

Classes

struct  InterpolationImpl
 Interpolation of a field. More...
 
struct  InterpolationImpl< 1, Dummy >
 Interpolation of a scalar field. More...
 

Public Types

typedef ETYPE EtypeT
 The shape function type. More...
 
typedef GeometricSupport< SupportEtypeT > SupportT
 
typedef Eigen::Matrix< Real, EtypeT::nb_nodes, DimValueT
 The value type for all element values. More...
 
typedef Eigen::Matrix< Real, EtypeT::nb_nodes *Dim, 1 > ElementVectorT
 The value type for a linearised representation of the element values. More...
 
typedef const ValueTValueResultT
 Return type of the value() method. More...
 
typedef EtypeT::MappedCoordsT MappedCoordsT
 Type for passing mapped coordinates. More...
 
typedef InterpolationImpl< Dim >::result_type EvalT
 The result type of an interpolation at given mapped coordinates. More...
 
typedef EtypeT::SF::GradientT GradientT
 Type of the gradient. More...
 
typedef Eigen::Matrix< Real, 1, Dim *EtypeT::nb_nodesDivergenceLinT
 Type of the linearized form of the divergence. More...
 

Public Member Functions

 BOOST_MPL_ASSERT_NOT ((boost::is_same< EvalT, const Eigen::Matrix< Real, 1, 1 > & >))
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW const mesh::Connectivityget_connectivity (const std::string &tag, mesh::Elements &elements)
 We store data as a fixed-size Eigen matrix, so we need to make sure alignment is respected. More...
 
template<typename VariableT >
 EtypeTVariableData (const VariableT &placeholder, mesh::Elements &elements, const SupportT &support)
 
 ~EtypeTVariableData ()
 
void set_element (const Uint element_idx)
 Update nodes for the current element. More...
 
void update_block_connectivity (math::LSS::BlockAccumulator &block_accumulator)
 
const SupportTsupport () const
 Reference to the geometric support. More...
 
ValueResultT value () const
 Reference to the stored data, i.e. the matrix of nodal values. More...
 
const ElementVectorTelement_vector () const
 
template<typename NodeValsT >
void add_nodal_values (const NodeValsT &vals)
 
template<typename NodeValsT >
void add_nodal_values_component (const NodeValsT &vals, const Uint component_idx)
 
void compute_values (const MappedCoordsT &mapped_coords) const
 Precompute all the cached values for the given geometric support and mapped coordinates. More...
 
EvalT eval (const MappedCoordsT &mapped_coords) const
 Calculate and return the interpolation at given mapped coords. More...
 
EvalT eval () const
 Return previously computed evaluation. More...
 
const EtypeT::SF::ValueT & shape_function (const MappedCoordsT &mapped_coords) const
 Shape function matrix at mapped coordinates (calculates and returns) More...
 
const EtypeT::SF::ValueT & shape_function () const
 Previously calculated shape function matrix. More...
 
const GradientTnabla (const MappedCoordsT &mapped_coords) const
 Return the gradient matrix. More...
 
const GradientTnabla () const
 Previously calculated gradient matrix. More...
 

Public Attributes

const Uint offset
 Index of where the variable we need is in the field data row. More...
 

Static Public Attributes

static const Uint dimension = Dim
 The dimension of the variable. More...
 
static const bool is_equation_variable = IsEquationVar
 True if this variable is an unknow in the system of equations. More...
 

Private Member Functions

void compute_values_dispatch (boost::mpl::false_, const MappedCoordsT &mapped_coords) const
 Precompute for non-volume EtypeT. More...
 
void compute_values_dispatch (boost::mpl::true_, const MappedCoordsT &mapped_coords) const
 Precompute for volume EtypeT. More...
 

Private Attributes

ValueT m_element_values
 Value of the field in each element node. More...
 
ElementVectorT m_element_vector
 
mesh::Fieldm_field
 Data table. More...
 
const mesh::Connectivity::ArrayTm_connectivity_array
 Connectivity table. More...
 
const SupportTm_support
 Gemetric support. More...
 
Uint m_element_idx
 
EtypeT::SF::ValueT m_sf
 Cached data. More...
 
EtypeT::SF::GradientT m_mapped_gradient_matrix
 
GradientT m_gradient
 
InterpolationImpl< Dimm_eval
 
bool m_need_sync
 

Detailed Description

template<typename ETYPE, typename SupportEtypeT, Uint Dim, bool IsEquationVar>
class cf3::solver::actions::Proto::EtypeTVariableData< ETYPE, SupportEtypeT, Dim, IsEquationVar >

Data associated with field variables.

Definition at line 350 of file ElementData.hpp.

Member Typedef Documentation

typedef Eigen::Matrix<Real, 1, Dim * EtypeT::nb_nodes> DivergenceLinT

Type of the linearized form of the divergence.

Definition at line 418 of file ElementData.hpp.

typedef Eigen::Matrix<Real, EtypeT::nb_nodes*Dim, 1> ElementVectorT

The value type for a linearised representation of the element values.

Definition at line 400 of file ElementData.hpp.

typedef ETYPE EtypeT

The shape function type.

Definition at line 354 of file ElementData.hpp.

typedef InterpolationImpl<Dim>::result_type EvalT

The result type of an interpolation at given mapped coordinates.

Definition at line 409 of file ElementData.hpp.

typedef EtypeT::SF::GradientT GradientT

Type of the gradient.

Definition at line 415 of file ElementData.hpp.

Type for passing mapped coordinates.

Definition at line 406 of file ElementData.hpp.

typedef GeometricSupport<SupportEtypeT> SupportT

Definition at line 394 of file ElementData.hpp.

typedef const ValueT& ValueResultT

Return type of the value() method.

Definition at line 403 of file ElementData.hpp.

typedef Eigen::Matrix<Real, EtypeT::nb_nodes, Dim> ValueT

The value type for all element values.

Definition at line 397 of file ElementData.hpp.

Constructor & Destructor Documentation

EtypeTVariableData ( const VariableT &  placeholder,
mesh::Elements elements,
const SupportT support 
)
inline

Definition at line 440 of file ElementData.hpp.

~EtypeTVariableData ( )
inline

Definition at line 449 of file ElementData.hpp.

Member Function Documentation

void add_nodal_values ( const NodeValsT &  vals)
inline

Definition at line 495 of file ElementData.hpp.

void add_nodal_values_component ( const NodeValsT &  vals,
const Uint  component_idx 
)
inline

Definition at line 509 of file ElementData.hpp.

BOOST_MPL_ASSERT_NOT ( (boost::is_same< EvalT, const Eigen::Matrix< Real, 1, 1 > & >)  )
void compute_values ( const MappedCoordsT mapped_coords) const
inline

Precompute all the cached values for the given geometric support and mapped coordinates.

Definition at line 522 of file ElementData.hpp.

void compute_values_dispatch ( boost::mpl::false_  ,
const MappedCoordsT mapped_coords 
) const
inlineprivate

Precompute for non-volume EtypeT.

Definition at line 569 of file ElementData.hpp.

void compute_values_dispatch ( boost::mpl::true_  ,
const MappedCoordsT mapped_coords 
) const
inlineprivate

Precompute for volume EtypeT.

Definition at line 576 of file ElementData.hpp.

const ElementVectorT& element_vector ( ) const
inline

Definition at line 485 of file ElementData.hpp.

EvalT eval ( const MappedCoordsT mapped_coords) const
inline

Calculate and return the interpolation at given mapped coords.

Definition at line 528 of file ElementData.hpp.

EvalT eval ( ) const
inline

Return previously computed evaluation.

Definition at line 535 of file ElementData.hpp.

EIGEN_MAKE_ALIGNED_OPERATOR_NEW const mesh::Connectivity& get_connectivity ( const std::string &  tag,
mesh::Elements elements 
)
inline

We store data as a fixed-size Eigen matrix, so we need to make sure alignment is respected.

Helper to get the connectivity table

Definition at line 430 of file ElementData.hpp.

const GradientT& nabla ( const MappedCoordsT mapped_coords) const
inline

Return the gradient matrix.

Definition at line 554 of file ElementData.hpp.

const GradientT& nabla ( ) const
inline

Previously calculated gradient matrix.

Definition at line 562 of file ElementData.hpp.

void set_element ( const Uint  element_idx)
inline

Update nodes for the current element.

Definition at line 462 of file ElementData.hpp.

const EtypeT::SF::ValueT& shape_function ( const MappedCoordsT mapped_coords) const
inline

Shape function matrix at mapped coordinates (calculates and returns)

Definition at line 541 of file ElementData.hpp.

const EtypeT::SF::ValueT& shape_function ( ) const
inline

Previously calculated shape function matrix.

Definition at line 548 of file ElementData.hpp.

const SupportT& support ( ) const
inline

Reference to the geometric support.

Definition at line 474 of file ElementData.hpp.

void update_block_connectivity ( math::LSS::BlockAccumulator block_accumulator)
inline

Definition at line 468 of file ElementData.hpp.

ValueResultT value ( ) const
inline

Reference to the stored data, i.e. the matrix of nodal values.

Definition at line 480 of file ElementData.hpp.

Member Data Documentation

const Uint dimension = Dim
static

The dimension of the variable.

Definition at line 421 of file ElementData.hpp.

const bool is_equation_variable = IsEquationVar
static

True if this variable is an unknow in the system of equations.

Definition at line 424 of file ElementData.hpp.

const mesh::Connectivity::ArrayT& m_connectivity_array
private

Connectivity table.

Definition at line 592 of file ElementData.hpp.

Uint m_element_idx
private

Definition at line 597 of file ElementData.hpp.

ValueT m_element_values
private

Value of the field in each element node.

Definition at line 584 of file ElementData.hpp.

ElementVectorT m_element_vector
mutableprivate

Definition at line 586 of file ElementData.hpp.

InterpolationImpl<Dim> m_eval
private

Definition at line 604 of file ElementData.hpp.

mesh::Field& m_field
private

Data table.

Definition at line 589 of file ElementData.hpp.

GradientT m_gradient
mutableprivate

Definition at line 602 of file ElementData.hpp.

EtypeT::SF::GradientT m_mapped_gradient_matrix
mutableprivate

Definition at line 601 of file ElementData.hpp.

bool m_need_sync
private

Definition at line 606 of file ElementData.hpp.

EtypeT::SF::ValueT m_sf
mutableprivate

Cached data.

Definition at line 600 of file ElementData.hpp.

const SupportT& m_support
private

Gemetric support.

Definition at line 595 of file ElementData.hpp.

const Uint offset

Index of where the variable we need is in the field data row.

Definition at line 610 of file ElementData.hpp.


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