LifeV
ETCurrentFE< spaceDim, fieldDim > Class Template Reference

#include <ETCurrentFE.hpp>

+ Collaboration diagram for ETCurrentFE< spaceDim, fieldDim >:

Private Types

typedef VectorSmall< fieldDim > array1D_Return_Type
 
typedef MatrixSmall< fieldDim, spaceDim > matrix_Return_Type
 
typedef std::vector< std::vector< array1D_Return_Type > > array2D_vector_Type
 
typedef std::vector< std::vector< matrix_Return_Type > > array2D_matrix_Type
 
typedef std::vector< std::vector< std::vector< matrix_Return_Type > > > array_3D_matrix_Type
 
typedef MatrixSmall< spaceDim, spaceDim > matrix_d2Phi
 
typedef std::vector< std::vector< std::vector< matrix_d2Phi > > > array_d2Phi
 
typedef std::vector< Realarray1D_Type
 
typedef std::vector< array1D_Typearray2D_Type
 
typedef std::vector< array2D_Typearray3D_Type
 
typedef std::vector< std::vector< array1D_Return_Type > > arrayLaplacian_Type
 
typedef std::vector< array3D_Typearray4D_Type
 

Private Attributes

const ReferenceFEM_referenceFE
 
const GeometricMapM_geometricMap
 
const QuadratureRuleM_quadratureRule
 
UInt M_nbFEDof
 
UInt M_nbMapDof
 
UInt M_nbQuadPt
 
UInt M_currentId
 
UInt M_currentLocalId
 
array2D_vector_Type M_phi
 
array2D_Type M_phiMap
 
array3D_Type M_dphiReferenceFE
 
array3D_Type M_dphiGeometricMap
 
array4D_Type M_d2phiReferenceFE
 
array2D_Type M_cellNode
 
array2D_Type M_quadNode
 
array3D_Type M_jacobian
 
array1D_Type M_detJacobian
 
array1D_Type M_wDet
 
array3D_Type M_tInverseJacobian
 
array2D_matrix_Type M_dphi
 
array2D_Type M_divergence
 
array_d2Phi M_d2phi
 
arrayLaplacian_Type M_laplacian
 

Friends

template<UInt dim>
class ExpressionAssembly::EvaluationPhiI
 Friend to allow direct access to the raw data. More...
 
template<UInt dim>
class ExpressionAssembly::EvaluationPhiJ
 Friend to allow direct access to the raw data. More...
 
template<UInt dim, UInt FSpaceDim>
class ExpressionAssembly::EvaluationDphiI
 Friend to allow direct access to the raw data. More...
 
template<UInt dim, UInt FSpaceDim>
class ExpressionAssembly::EvaluationDphiJ
 Friend to allow direct access to the raw data. More...
 
template<UInt dim, UInt FSpaceDim>
class ExpressionAssembly::EvaluationDivI
 Friend to allow direct access to the raw data. More...
 
template<UInt dim, UInt FSpaceDim>
class ExpressionAssembly::EvaluationDivJ
 Friend to allow direct access to the raw data. More...
 
template<UInt dim, UInt FSpaceDim>
class ExpressionAssembly::EvaluationLaplacianI
 Friend to allow direct access to the raw data. More...
 
template<UInt dim, UInt FSpaceDim>
class ExpressionAssembly::EvaluationLaplacianJ
 Friend to allow direct access to the raw data. More...
 

Static constants

static const UInt S_spaceDimension = spaceDim
 Static value for the space dimension. More...
 
static const UInt S_fieldDimension = fieldDim
 Static value for the dimension of the field (fieldDim here as it is a vectorial FE) More...
 

Constructors, destructor

 ETCurrentFE (const ReferenceFE &refFE, const GeometricMap &geoMap, const QuadratureRule &qr)
 Full constructor. More...
 
 ETCurrentFE (const ReferenceFE &refFE, const GeometricMap &geoMap)
 Constructor without quadrature rule. More...
 
 ETCurrentFE (const ETCurrentFE< spaceDim, fieldDim > &otherFE)
 Copy constructor. More...
 
virtual ~ETCurrentFE ()
 Destructor. More...
 

Methods

template<typename elementType >
void update (const elementType &element, const flag_Type &flag)
 Update method. More...
 
void showMe (std::ostream &out=std::cout) const
 ShowMe method. More...
 

Set Methods

void setQuadratureRule (const QuadratureRule &qr)
 Setter for the quadrature rule. More...
 

Get Methods

UInt nbFEDof () const
 Getter for the number of degrees of freedom of this element. More...
 
const array1D_Return_Typephi (const UInt &i, const UInt &q) const
 Getter for the values of the basis functions in the quadrature nodes in the current element. More...
 
Real quadNode (const UInt &q, const UInt &coord) const
 Getter for the coordinates of the quadrature nodes in the current element. More...
 
Real wDet (const UInt &q) const
 Getter for the weighted jacobian determinant (current element) More...
 
const Realdphi (const UInt &i, const UInt &iCoor, const UInt &dxi, const UInt &q) const
 Getter for the derivatives of the basis function in the quadrature nodes (current element) More...
 
MatrixSmall< spaceDim, 3 > const & dphi (const UInt &i, const UInt &q) const
 Getter for the derivatives of the basis function in the quadrature nodes (current element) More...
 
const array1D_Return_Typedivergence (const UInt &i, const UInt &q) const
 Getter for the divergence of the basis functions in the quadrature nodes in the current element. More...
 
const VectorSmall< fieldDim > & laplacian (const UInt &i, const UInt &q) const
 Getter for the laplacian of the basis functions in the quadrature nodes in the current element. More...
 
UInt currentId () const
 Getter for the identifier of the current element. More...
 

Private Methods

 ETCurrentFE ()
 No default constructor. More...
 
void operator= (const ETCurrentFE< spaceDim, fieldDim > &)
 No assignement. More...
 
void setupInternalConstants ()
 Resize all the internal containers w.r. to the stored data and compute the constant values. More...
 
template<typename ElementType >
void updateCellNode (const ElementType &element)
 Update the cell nodes. More...
 
void updateQuadNode (const UInt &iQuadPt)
 Update the quadrature nodes. More...
 
void updateJacobian (const UInt &iQuadPt)
 Update Jacobian. More...
 
void updateDetJacobian (const UInt &iQuadPt)
 Update DetJacobian. More...
 
void updateInverseJacobian (const UInt &iQuadPt)
 Update InverseJacobian. More...
 
void updateWDet (const UInt &iQuadPt)
 Update WeightedJacobian. More...
 
void updateDphi (const UInt &iQuadPt)
 Update Dphi. More...
 
void updateD2phi (const UInt &iQuadPt)
 Update D2phi. More...
 
void updateDivergence (const UInt &iQuadPt)
 Update Divergence. More...
 
void updateLaplacian (const UInt &iQuadPt)
 Update Laplacian. More...
 

Detailed Description

template<UInt spaceDim, UInt fieldDim>
class LifeV::ETCurrentFE< spaceDim, fieldDim >

ETCurrenteFE is a template class. If fieldDim the general case is treated as representing a vectorial FE (only the case where fieldDim represents a scalar FE, but this is a partial specialization of this class).

ETCurrenteFE is a template class. This is the non-specialized class used with fieldDim = 3 or 2 (using faster VectorSmall return objects)

Definition at line 9 of file ETCurrentFE.hpp.

Member Typedef Documentation

◆ array1D_Return_Type

typedef VectorSmall< fieldDim > array1D_Return_Type
private

Definition at line 52 of file ETCurrentFE.hpp.

◆ matrix_Return_Type

typedef MatrixSmall< fieldDim, spaceDim > matrix_Return_Type
private

Definition at line 55 of file ETCurrentFE.hpp.

◆ array2D_vector_Type

typedef std::vector< std::vector< array1D_Return_Type > > array2D_vector_Type
private

Definition at line 58 of file ETCurrentFE.hpp.

◆ array2D_matrix_Type

typedef std::vector< std::vector< matrix_Return_Type > > array2D_matrix_Type
private

Definition at line 61 of file ETCurrentFE.hpp.

◆ array_3D_matrix_Type

typedef std::vector< std::vector< std::vector <matrix_Return_Type > > > array_3D_matrix_Type
private

Definition at line 64 of file ETCurrentFE.hpp.

◆ matrix_d2Phi

typedef MatrixSmall< spaceDim, spaceDim > matrix_d2Phi
private

Definition at line 67 of file ETCurrentFE.hpp.

◆ array_d2Phi

typedef std::vector< std::vector< std::vector< matrix_d2Phi > > > array_d2Phi
private

Definition at line 68 of file ETCurrentFE.hpp.

◆ array1D_Type

typedef std::vector< Real > array1D_Type
private

Definition at line 289 of file ETCurrentFE.hpp.

◆ array2D_Type

typedef std::vector< array1D_Type > array2D_Type
private

Definition at line 292 of file ETCurrentFE.hpp.

◆ array3D_Type

typedef std::vector< array2D_Type > array3D_Type
private

Definition at line 295 of file ETCurrentFE.hpp.

◆ arrayLaplacian_Type

typedef std::vector< std::vector< array1D_Return_Type > > arrayLaplacian_Type
private

Definition at line 297 of file ETCurrentFE.hpp.

◆ array4D_Type

typedef std::vector< array3D_Type > array4D_Type
private

Definition at line 300 of file ETCurrentFE.hpp.

Constructor & Destructor Documentation

◆ ETCurrentFE() [1/4]

ETCurrentFE ( const ReferenceFE refFE,
const GeometricMap geoMap,
const QuadratureRule qr 
)

Full constructor.

Parameters
refFEThe reference element for the FE
geoMapThe geometric map from the reference element to the current element
qrThe quadrature rule

Definition at line 440 of file ETCurrentFE.hpp.

◆ ETCurrentFE() [2/4]

ETCurrentFE ( const ReferenceFE refFE,
const GeometricMap geoMap 
)

Constructor without quadrature rule.

Parameters
refFEThe reference element for the FE
geoMapThe geometric map from the reference element to the current element

Definition at line 491 of file ETCurrentFE.hpp.

◆ ETCurrentFE() [3/4]

ETCurrentFE ( const ETCurrentFE< spaceDim, fieldDim > &  otherFE)

Copy constructor.

Parameters
otherFEThe currentFE to be copied

Definition at line 542 of file ETCurrentFE.hpp.

◆ ~ETCurrentFE()

~ETCurrentFE ( )
virtual

Destructor.

Definition at line 592 of file ETCurrentFE.hpp.

◆ ETCurrentFE() [4/4]

ETCurrentFE ( )
private

No default constructor.

Member Function Documentation

◆ update()

void update ( const elementType &  element,
const flag_Type flag 
)

Update method.

The update method computes the required quantities (indicated by the flag, see in Flags to update the ETCurrentFE) on the element.

Parameters
elementThe current element were to compute the values
flagThe flag indicating the quantities to update

Template parameters

elementType: The type of the element

Template requirements

elementType: has a id() method returning the identifier (global); has a localId() method returning the identifier (local); has a method point(UInt i) that returns the ith point.

Definition at line 603 of file ETCurrentFE.hpp.

◆ showMe()

void showMe ( std::ostream &  out = std::cout) const

ShowMe method.

Parameters
outOutput stream were to print the informations

Definition at line 675 of file ETCurrentFE.hpp.

◆ setQuadratureRule()

void setQuadratureRule ( const QuadratureRule qr)

Setter for the quadrature rule.

Beware that when this setter is called, all the internal structures have to be reshaped (according to the number of quadrature nodes).

Parameters
qrThe new quadrature to use.

Definition at line 764 of file ETCurrentFE.hpp.

◆ nbFEDof()

UInt nbFEDof ( ) const
inline

Getter for the number of degrees of freedom of this element.

Returns
The number of number of degrees of freedom of this element

Definition at line 165 of file ETCurrentFE.hpp.

◆ phi()

const array1D_Return_Type& phi ( const UInt i,
const UInt q 
) const
inline

Getter for the values of the basis functions in the quadrature nodes in the current element.

Parameters
iThe index of the basis function
qThe index of the quadrature node
Returns
The vector<3> of the ith basis function in the qth quadrature node

Definition at line 176 of file ETCurrentFE.hpp.

◆ quadNode()

Real quadNode ( const UInt q,
const UInt coord 
) const
inline

Getter for the coordinates of the quadrature nodes in the current element.

Parameters
qThe index of the quadrature node
coordThe coordinate required
Returns
The coordth component of the coordinate of the qth quadrature point

Definition at line 190 of file ETCurrentFE.hpp.

◆ wDet()

Real wDet ( const UInt q) const
inline

Getter for the weighted jacobian determinant (current element)

Parameters
qThe index of the quadrature point
Returns
The weighted determinant of the jacobian transform in the qth quadrature node

Definition at line 203 of file ETCurrentFE.hpp.

◆ dphi() [1/2]

const Real& dphi ( const UInt i,
const UInt iCoor,
const UInt dxi,
const UInt q 
) const
inline

Getter for the derivatives of the basis function in the quadrature nodes (current element)

Parameters
iThe index of the basis function
iCoorThe component of the basis function to be derived
dxiThe direction of the derivative required (0 for d/dx, 1 for d/dy...)
qThe index of the quadrature node
Returns
The iCoor component of the ith basis function derived w.r. to dxi, in the qth quadrature node.

Definition at line 218 of file ETCurrentFE.hpp.

◆ dphi() [2/2]

MatrixSmall<spaceDim, 3> const& dphi ( const UInt i,
const UInt q 
) const
inline

Getter for the derivatives of the basis function in the quadrature nodes (current element)

Parameters
iThe index of the basis function
qThe index of the quadrature node
Returns
The local vector of the basis functions derived w.r. to dxi, in the qth quadrature node.

Definition at line 235 of file ETCurrentFE.hpp.

◆ divergence()

const array1D_Return_Type& divergence ( const UInt i,
const UInt q 
) const
inline

Getter for the divergence of the basis functions in the quadrature nodes in the current element.

Parameters
iThe index of the basis function
qThe index of the quadrature node
Returns
The divergence of the ith basis function in the qth quadrature node

Definition at line 249 of file ETCurrentFE.hpp.

◆ laplacian()

const VectorSmall<fieldDim>& laplacian ( const UInt i,
const UInt q 
) const
inline

Getter for the laplacian of the basis functions in the quadrature nodes in the current element.

Parameters
iThe index of the basis function
qThe index of the quadrature node
Returns
The divergence of the ith basis function in the qth quadrature node

Definition at line 265 of file ETCurrentFE.hpp.

◆ currentId()

UInt currentId ( ) const
inline

Getter for the identifier of the current element.

Returns
The (global) identifier of the current element.

Definition at line 278 of file ETCurrentFE.hpp.

◆ operator=()

void operator= ( const ETCurrentFE< spaceDim, fieldDim > &  )
private

No assignement.

◆ setupInternalConstants()

void setupInternalConstants ( )
private

Resize all the internal containers w.r. to the stored data and compute the constant values.

Definition at line 778 of file ETCurrentFE.hpp.

◆ updateCellNode()

void updateCellNode ( const ElementType &  element)
private

Update the cell nodes.

Definition at line 1170 of file ETCurrentFE.hpp.

◆ updateQuadNode()

void updateQuadNode ( const UInt iQuadPt)
private

Update the quadrature nodes.

Definition at line 954 of file ETCurrentFE.hpp.

◆ updateJacobian()

void updateJacobian ( const UInt iQuadPt)
private

Update Jacobian.

Definition at line 978 of file ETCurrentFE.hpp.

◆ updateDetJacobian()

void updateDetJacobian ( const UInt iQuadPt)
private

Update DetJacobian.

◆ updateInverseJacobian()

void updateInverseJacobian ( const UInt iQuadPt)
private

Update InverseJacobian.

◆ updateWDet()

void updateWDet ( const UInt iQuadPt)
private

Update WeightedJacobian.

Definition at line 1005 of file ETCurrentFE.hpp.

◆ updateDphi()

void updateDphi ( const UInt iQuadPt)
private

Update Dphi.

Definition at line 1018 of file ETCurrentFE.hpp.

◆ updateD2phi()

void updateD2phi ( const UInt iQuadPt)
private

Update D2phi.

Definition at line 1092 of file ETCurrentFE.hpp.

◆ updateDivergence()

void updateDivergence ( const UInt iQuadPt)
private

Update Divergence.

Definition at line 1061 of file ETCurrentFE.hpp.

◆ updateLaplacian()

void updateLaplacian ( const UInt iQuadPt)
private

Update Laplacian.

Definition at line 1134 of file ETCurrentFE.hpp.

Friends And Related Function Documentation

◆ ExpressionAssembly::EvaluationPhiI

Friend to allow direct access to the raw data.

Definition at line 17 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationPhiJ

Friend to allow direct access to the raw data.

Definition at line 21 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationDphiI

Friend to allow direct access to the raw data.

Definition at line 25 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationDphiJ

Friend to allow direct access to the raw data.

Definition at line 29 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationDivI

Friend to allow direct access to the raw data.

Definition at line 33 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationDivJ

Friend to allow direct access to the raw data.

Definition at line 37 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationLaplacianI

Friend to allow direct access to the raw data.

Definition at line 41 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationLaplacianJ

Friend to allow direct access to the raw data.

Definition at line 45 of file ETCurrentFE.hpp.

Field Documentation

◆ S_spaceDimension

const UInt S_spaceDimension = spaceDim
static

Static value for the space dimension.

Definition at line 76 of file ETCurrentFE.hpp.

◆ S_fieldDimension

const UInt S_fieldDimension = fieldDim
static

Static value for the dimension of the field (fieldDim here as it is a vectorial FE)

Definition at line 79 of file ETCurrentFE.hpp.

◆ M_referenceFE

const ReferenceFE* M_referenceFE
private

Definition at line 349 of file ETCurrentFE.hpp.

◆ M_geometricMap

const GeometricMap* M_geometricMap
private

Definition at line 351 of file ETCurrentFE.hpp.

◆ M_quadratureRule

const QuadratureRule* M_quadratureRule
private

Definition at line 353 of file ETCurrentFE.hpp.

◆ M_nbFEDof

UInt M_nbFEDof
private

Definition at line 356 of file ETCurrentFE.hpp.

◆ M_nbMapDof

UInt M_nbMapDof
private

Definition at line 358 of file ETCurrentFE.hpp.

◆ M_nbQuadPt

UInt M_nbQuadPt
private

Definition at line 360 of file ETCurrentFE.hpp.

◆ M_currentId

UInt M_currentId
private

Definition at line 363 of file ETCurrentFE.hpp.

◆ M_currentLocalId

UInt M_currentLocalId
private

Definition at line 365 of file ETCurrentFE.hpp.

◆ M_phi

array2D_vector_Type M_phi
private

Definition at line 368 of file ETCurrentFE.hpp.

◆ M_phiMap

array2D_Type M_phiMap
private

Definition at line 371 of file ETCurrentFE.hpp.

◆ M_dphiReferenceFE

array3D_Type M_dphiReferenceFE
private

Definition at line 373 of file ETCurrentFE.hpp.

◆ M_dphiGeometricMap

array3D_Type M_dphiGeometricMap
private

Definition at line 375 of file ETCurrentFE.hpp.

◆ M_d2phiReferenceFE

array4D_Type M_d2phiReferenceFE
private

Definition at line 377 of file ETCurrentFE.hpp.

◆ M_cellNode

array2D_Type M_cellNode
private

Definition at line 380 of file ETCurrentFE.hpp.

◆ M_quadNode

array2D_Type M_quadNode
private

Definition at line 382 of file ETCurrentFE.hpp.

◆ M_jacobian

array3D_Type M_jacobian
private

Definition at line 384 of file ETCurrentFE.hpp.

◆ M_detJacobian

array1D_Type M_detJacobian
private

Definition at line 386 of file ETCurrentFE.hpp.

◆ M_wDet

array1D_Type M_wDet
private

Definition at line 388 of file ETCurrentFE.hpp.

◆ M_tInverseJacobian

array3D_Type M_tInverseJacobian
private

Definition at line 390 of file ETCurrentFE.hpp.

◆ M_dphi

array2D_matrix_Type M_dphi
private

Definition at line 393 of file ETCurrentFE.hpp.

◆ M_divergence

array2D_Type M_divergence
private

Definition at line 395 of file ETCurrentFE.hpp.

◆ M_d2phi

array_d2Phi M_d2phi
private

Definition at line 398 of file ETCurrentFE.hpp.

◆ M_laplacian

arrayLaplacian_Type M_laplacian
private

Definition at line 401 of file ETCurrentFE.hpp.


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