LifeV
IntegrateMatrixElement< MeshType, TestSpaceType, SolutionSpaceType, ExpressionType, QRAdapterType > Class Template Reference

The class to actually perform the loop over the elements to assemble a matrix. More...

#include <IntegrateMatrixElement.hpp>

+ Collaboration diagram for IntegrateMatrixElement< MeshType, TestSpaceType, SolutionSpaceType, ExpressionType, QRAdapterType >:

Private Attributes

std::shared_ptr< MeshTypeM_mesh
 
QRAdapterType M_qrAdapter
 
std::shared_ptr< TestSpaceType > M_testSpace
 
std::shared_ptr< SolutionSpaceType > M_solutionSpace
 
evaluation_Type M_evaluation
 
ETCurrentFE< MeshType::S_geoDimensions, 1 > * M_globalCFE_std
 
ETCurrentFE< MeshType::S_geoDimensions, 1 > * M_globalCFE_adapted
 
ETCurrentFE< TestSpaceType::space_dim, TestSpaceType::field_dim > * M_testCFE_std
 
ETCurrentFE< TestSpaceType::space_dim, TestSpaceType::field_dim > * M_testCFE_adapted
 
ETCurrentFE< TestSpaceType::space_dim, SolutionSpaceType::field_dim > * M_solutionCFE_std
 
ETCurrentFE< TestSpaceType::space_dim, SolutionSpaceType::field_dim > * M_solutionCFE_adapted
 
UInt M_offsetUp
 
UInt M_offsetLeft
 
OpenMPParameters M_ompParams
 
const UInt M_regionFlag
 
const UInt M_numVolumeElements
 
const UIntM_volumeElements
 
const bool M_integrateOnSubdomains
 

Public Types

typedef ExpressionToEvaluation< ExpressionType, TestSpaceType::field_dim, SolutionSpaceType::field_dim, MeshType::S_geoDimensions >::evaluation_Type evaluation_Type
 Type of the Evaluation. More...
 

Constructors, destructor

 IntegrateMatrixElement (const std::shared_ptr< MeshType > &mesh, const QRAdapterType &qrAdapter, const std::shared_ptr< TestSpaceType > &testSpace, const std::shared_ptr< SolutionSpaceType > &solutionSpace, const ExpressionType &expression, const UInt offsetUp=0, const UInt offsetLeft=0, const UInt regionFlag=0, const UInt numVolumeElements=0, const UInt *const volumeElements=nullptr, const bool subDomain=false)
 Full data constructor. More...
 
 IntegrateMatrixElement (const std::shared_ptr< MeshType > &mesh, const QRAdapterType &qrAdapter, const std::shared_ptr< TestSpaceType > &testSpace, const std::shared_ptr< SolutionSpaceType > &solutionSpace, const ExpressionType &expression, const OpenMPParameters &ompParams, const UInt offsetUp=0, const UInt offsetLeft=0, const UInt regionFlag=0, const UInt numVolumeElements=0, const UInt *const volumeElements=nullptr, const bool subDomain=false)
 Full data constructor. More...
 
 IntegrateMatrixElement (const IntegrateMatrixElement< MeshType, TestSpaceType, SolutionSpaceType, ExpressionType, QRAdapterType > &integrator)
 Copy constructor. More...
 
 ~IntegrateMatrixElement ()
 Destructor. More...
 

Operators

template<typename MatrixType >
void operator>> (MatrixType &mat)
 Operator wrapping the addTo method. More...
 
template<typename MatrixType >
void operator>> (std::shared_ptr< MatrixType > mat)
 Operator wrapping the addTo method (for shared_ptr) More...
 

Methods

void check (std::ostream &out=std::cout)
 Ouput method. More...
 
template<typename MatrixType >
void addTo (MatrixType &mat)
 Method that performs the assembly. More...
 
template<typename MatrixType >
void addToSubdomain (MatrixType &mat)
 
template<typename MatrixType >
void addToClosed (MatrixType &mat)
 Method that performs the assembly. More...
 
template<typename MatrixType >
void addTo (std::shared_ptr< MatrixType > mat)
 Method that performs the assembly. More...
 
template<typename MatrixType >
void addToSubdomain (boost::shared_ptr< MatrixType > mat)
 
template<typename MatrixType >
void addToClosed (std::shared_ptr< MatrixType > mat)
 Method that performs the assembly. More...
 

Private Methods

 IntegrateMatrixElement ()
 No empty constructor. More...
 
void integrateElement (const UInt iElement, const UInt nbQuadPt, const UInt nbTestDof, const UInt nbSolutionDof, ETMatrixElemental &elementalMatrix, evaluation_Type &evaluation, ETCurrentFE< MeshType::S_geoDimensions, 1 > &globalCFE, ETCurrentFE< TestSpaceType::space_dim, TestSpaceType::field_dim > &testCFE, ETCurrentFE< SolutionSpaceType::space_dim, SolutionSpaceType::field_dim > &solutionCFE)
 Perform the computations for a single element. More...
 

Detailed Description

template<typename MeshType, typename TestSpaceType, typename SolutionSpaceType, typename ExpressionType, typename QRAdapterType>
class LifeV::ExpressionAssembly::IntegrateMatrixElement< MeshType, TestSpaceType, SolutionSpaceType, ExpressionType, QRAdapterType >

The class to actually perform the loop over the elements to assemble a matrix.

Author
Samuel Quinodoz samue.nosp@m.l.qu.nosp@m.inodo.nosp@m.z@ep.nosp@m.fl.ch

This class is used to store the data required for the assembly of a matrix and perform that assembly with a loop over the elements, and then, for each elements, using the Evaluation corresponding to the Expression (This convertion is done within a typedef).

Definition at line 83 of file IntegrateMatrixElement.hpp.

Member Typedef Documentation

◆ evaluation_Type

typedef ExpressionToEvaluation< ExpressionType, TestSpaceType::field_dim, SolutionSpaceType::field_dim, MeshType::S_geoDimensions >::evaluation_Type evaluation_Type

Type of the Evaluation.

Definition at line 94 of file IntegrateMatrixElement.hpp.

Constructor & Destructor Documentation

◆ IntegrateMatrixElement() [1/4]

IntegrateMatrixElement ( const std::shared_ptr< MeshType > &  mesh,
const QRAdapterType &  qrAdapter,
const std::shared_ptr< TestSpaceType > &  testSpace,
const std::shared_ptr< SolutionSpaceType > &  solutionSpace,
const ExpressionType &  expression,
const UInt  offsetUp = 0,
const UInt  offsetLeft = 0,
const UInt  regionFlag = 0,
const UInt  numVolumeElements = 0,
const UInt *const  volumeElements = nullptr,
const bool  subDomain = false 
)

Full data constructor.

Definition at line 335 of file IntegrateMatrixElement.hpp.

+ Here is the caller graph for this function:

◆ IntegrateMatrixElement() [2/4]

IntegrateMatrixElement ( const std::shared_ptr< MeshType > &  mesh,
const QRAdapterType &  qrAdapter,
const std::shared_ptr< TestSpaceType > &  testSpace,
const std::shared_ptr< SolutionSpaceType > &  solutionSpace,
const ExpressionType &  expression,
const OpenMPParameters ompParams,
const UInt  offsetUp = 0,
const UInt  offsetLeft = 0,
const UInt  regionFlag = 0,
const UInt  numVolumeElements = 0,
const UInt *const  volumeElements = nullptr,
const bool  subDomain = false 
)

Full data constructor.

Definition at line 400 of file IntegrateMatrixElement.hpp.

+ Here is the caller graph for this function:

◆ IntegrateMatrixElement() [3/4]

IntegrateMatrixElement ( const IntegrateMatrixElement< MeshType, TestSpaceType, SolutionSpaceType, ExpressionType, QRAdapterType > &  integrator)

Copy constructor.

Definition at line 466 of file IntegrateMatrixElement.hpp.

+ Here is the caller graph for this function:

◆ ~IntegrateMatrixElement()

Destructor.

Definition at line 521 of file IntegrateMatrixElement.hpp.

◆ IntegrateMatrixElement() [4/4]

No empty constructor.

Member Function Documentation

◆ operator>>() [1/2]

void operator>> ( MatrixType &  mat)
inline

Operator wrapping the addTo method.

Definition at line 143 of file IntegrateMatrixElement.hpp.

◆ operator>>() [2/2]

void operator>> ( std::shared_ptr< MatrixType >  mat)
inline

Operator wrapping the addTo method (for shared_ptr)

Definition at line 164 of file IntegrateMatrixElement.hpp.

◆ check()

void check ( std::ostream &  out = std::cout)

Ouput method.

Definition at line 540 of file IntegrateMatrixElement.hpp.

◆ addTo() [1/2]

void addTo ( MatrixType &  mat)

Method that performs the assembly.

The loop over the elements is located right in this method. Everything for the assembly is then performed: update the values, update the local matrix, sum over the quadrature nodes, assemble in the global matrix.

Definition at line 614 of file IntegrateMatrixElement.hpp.

◆ addToSubdomain() [1/2]

void addToSubdomain ( MatrixType &  mat)

Definition at line 827 of file IntegrateMatrixElement.hpp.

◆ addToClosed() [1/2]

void addToClosed ( MatrixType &  mat)

Method that performs the assembly.

The loop over the elements is located right in this method. Everything for the assembly is then performed: update the values, update the local matrix, sum over the quadrature nodes, assemble in the global matrix. The method is used for closed matrices

Definition at line 689 of file IntegrateMatrixElement.hpp.

◆ addTo() [2/2]

void addTo ( std::shared_ptr< MatrixType >  mat)
inline

Method that performs the assembly.

The loop over the elements is located right in this method. Everything for the assembly is then performed: update the values, update the local matrix, sum over the quadrature nodes, assemble in the global matrix.

Specialized for the case where the matrix is passed as a shared_ptr

Definition at line 229 of file IntegrateMatrixElement.hpp.

◆ addToSubdomain() [2/2]

void addToSubdomain ( boost::shared_ptr< MatrixType >  mat)
inline

Definition at line 237 of file IntegrateMatrixElement.hpp.

◆ addToClosed() [2/2]

void addToClosed ( std::shared_ptr< MatrixType >  mat)
inline

Method that performs the assembly.

The loop over the elements is located right in this method. Everything for the assembly is then performed: update the values, update the local matrix, sum over the quadrature nodes, assemble in the global matrix. This method is used with closed matrices.

Specialized for the case where the matrix is passed as a shared_ptr

Definition at line 255 of file IntegrateMatrixElement.hpp.

◆ integrateElement()

void integrateElement ( const UInt  iElement,
const UInt  nbQuadPt,
const UInt  nbTestDof,
const UInt  nbSolutionDof,
ETMatrixElemental elementalMatrix,
evaluation_Type evaluation,
ETCurrentFE< MeshType::S_geoDimensions, 1 > &  globalCFE,
ETCurrentFE< TestSpaceType::space_dim, TestSpaceType::field_dim > &  testCFE,
ETCurrentFE< SolutionSpaceType::space_dim, SolutionSpaceType::field_dim > &  solutionCFE 
)
private

Perform the computations for a single element.

This method computes the elemental matrix for a given element index

Definition at line 550 of file IntegrateMatrixElement.hpp.

+ Here is the caller graph for this function:

Field Documentation

◆ M_mesh

std::shared_ptr<MeshType> M_mesh
private

Definition at line 289 of file IntegrateMatrixElement.hpp.

◆ M_qrAdapter

QRAdapterType M_qrAdapter
private

Definition at line 292 of file IntegrateMatrixElement.hpp.

◆ M_testSpace

std::shared_ptr<TestSpaceType> M_testSpace
private

Definition at line 295 of file IntegrateMatrixElement.hpp.

◆ M_solutionSpace

std::shared_ptr<SolutionSpaceType> M_solutionSpace
private

Definition at line 296 of file IntegrateMatrixElement.hpp.

◆ M_evaluation

evaluation_Type M_evaluation
private

Definition at line 299 of file IntegrateMatrixElement.hpp.

◆ M_globalCFE_std

ETCurrentFE<MeshType::S_geoDimensions, 1>* M_globalCFE_std
private

Definition at line 301 of file IntegrateMatrixElement.hpp.

◆ M_globalCFE_adapted

ETCurrentFE<MeshType::S_geoDimensions, 1>* M_globalCFE_adapted
private

Definition at line 302 of file IntegrateMatrixElement.hpp.

◆ M_testCFE_std

ETCurrentFE<TestSpaceType::space_dim, TestSpaceType::field_dim>* M_testCFE_std
private

Definition at line 304 of file IntegrateMatrixElement.hpp.

◆ M_testCFE_adapted

ETCurrentFE<TestSpaceType::space_dim, TestSpaceType::field_dim>* M_testCFE_adapted
private

Definition at line 305 of file IntegrateMatrixElement.hpp.

◆ M_solutionCFE_std

ETCurrentFE<TestSpaceType::space_dim, SolutionSpaceType::field_dim>* M_solutionCFE_std
private

Definition at line 307 of file IntegrateMatrixElement.hpp.

◆ M_solutionCFE_adapted

ETCurrentFE<TestSpaceType::space_dim, SolutionSpaceType::field_dim>* M_solutionCFE_adapted
private

Definition at line 308 of file IntegrateMatrixElement.hpp.

◆ M_offsetUp

UInt M_offsetUp
private

Definition at line 310 of file IntegrateMatrixElement.hpp.

◆ M_offsetLeft

UInt M_offsetLeft
private

Definition at line 311 of file IntegrateMatrixElement.hpp.

◆ M_ompParams

OpenMPParameters M_ompParams
private

Definition at line 314 of file IntegrateMatrixElement.hpp.

◆ M_regionFlag

const UInt M_regionFlag
private

Definition at line 317 of file IntegrateMatrixElement.hpp.

◆ M_numVolumeElements

const UInt M_numVolumeElements
private

Definition at line 318 of file IntegrateMatrixElement.hpp.

◆ M_volumeElements

const UInt* M_volumeElements
private

Definition at line 319 of file IntegrateMatrixElement.hpp.

◆ M_integrateOnSubdomains

const bool M_integrateOnSubdomains
private

Definition at line 320 of file IntegrateMatrixElement.hpp.


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