LifeV
ETCurrentFE< spaceDim, 1 > Class Template Reference

#include <ETCurrentFE.hpp>

+ Collaboration diagram for ETCurrentFE< spaceDim, 1 >:

Private Types

typedef VectorSmall< spaceDim > array1D_Return_Type
 
typedef std::vector< Realarray1D_Type
 
typedef std::vector< array1D_Typearray2D_Type
 
typedef std::vector< array2D_Typearray3D_Type
 
typedef std::vector< array3D_Typearray4D_Type
 
typedef std::vector< VectorSmall< spaceDim > > array1D_vector_Type
 
typedef std::vector< std::vector< VectorSmall< spaceDim > > > array2D_vector_Type
 
typedef std::vector< std::vector< MatrixSmall< spaceDim, spaceDim > > > array2D_matrix_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
 
Real M_diameter
 
Real M_measure
 
array2D_Type M_phi
 
array2D_Type M_phiMap
 
array3D_Type M_dphiReferenceFE
 
array4D_Type M_d2phiReferenceFE
 
array3D_Type M_dphiGeometricMap
 
array2D_Type M_cellNode
 
array1D_vector_Type M_quadNode
 
array3D_Type M_jacobian
 
array1D_Type M_detJacobian
 
array1D_Type M_wDet
 
array3D_Type M_tInverseJacobian
 
array2D_vector_Type M_dphi
 
array2D_matrix_Type M_d2phi
 
array2D_Type M_laplacian
 
MatrixSmall< 3, 3 > M_metricTensor
 
VectorSmall< 3 > M_metricVector
 

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::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...
 
template<UInt dim>
class ExpressionAssembly::EvaluationHK
 Friend to allow direct access to the raw data. More...
 
template<UInt dim>
class ExpressionAssembly::EvaluationDetJacobian
 Friend to allow direct access to the raw data. More...
 
template<UInt dim>
class ExpressionAssembly::EvaluationMetricTensor
 Friend to allow direct access to the raw data. More...
 
template<UInt dim>
class ExpressionAssembly::EvaluationMetricVector
 Friend to allow direct access to the raw data. More...
 
template<UInt dim>
class ExpressionAssembly::EvaluationPosition
 Friend to allow direct access to the raw data. More...
 
template<UInt dim>
class ExpressionAssembly::EvaluationMeas
 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 = 1
 Static value for the dimension of the field (1 here as it is a scalar 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, 1 > &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...
 
Real phi (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...
 
Real dphi (const UInt &i, const UInt &dxi, const UInt &q) const
 Getter for the derivatives of the basis function in the quadrature nodes (current element) More...
 
VectorSmall< spaceDim > const & dphi (const UInt &i, const UInt &q) const
 Getter for the derivatives of the basis function in the quadrature nodes (current element) More...
 
Real const & laplacian (const UInt &i, const UInt &q) const
 Getter for the derivatives of the basis function in the quadrature nodes (current element) More...
 
UInt currentId () const
 Getter for the identifier of the current element. More...
 
Real diameter () const
 Getter for the diameter of the current element. More...
 
Real detJac () const
 Getter for the eterminant of the jacobian of the current element. More...
 
MatrixSmall< 3, 3 > metricTensor () const
 Getter for the metricTensor of the current element. More...
 
VectorSmall< 3 > metricVector () const
 Getter for the metricTensor of the current element. More...
 
Real measure () const
 Getter for the measure of the current element. More...
 

Private Methods

 ETCurrentFE ()
 No default constructor. More...
 
void operator= (const ETCurrentFE< spaceDim, 1 > &)
 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 updateCellNode (const std::vector< VectorSmall< spaceDim > > &ptsCoordinates)
 Update the cell nodes with a std::vector of points. More...
 
void updateDiameter ()
 Update the diameter of the cell. More...
 
void updateMetric ()
 Update the metric of the cell. More...
 
void updateMeasure ()
 Update the measure of the cell. 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 updateLaplacian (const UInt &iQuadPt)
 Update Laplacian. More...
 

Detailed Description

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

The ETCurrentFE is the class to be used to compute quantities related to the quadrature and the basis functions in a real element (current element).

These quantities are computed using the update method. The update is managed through a system of flags that have to be passed to that method to require some of the quantities to be computed.

The access to the data, getters have to be used (excepted for some specific classes which have a direct access to the stored data through friendship).

This is the partial specialization of the generic ETCurrentFE for scalar finite element spaces.

Definition at line 139 of file ETCurrentFE.hpp.

Member Typedef Documentation

◆ array1D_Return_Type

typedef VectorSmall< spaceDim > array1D_Return_Type
private

Definition at line 199 of file ETCurrentFE.hpp.

◆ array1D_Type

typedef std::vector< Real > array1D_Type
private

Definition at line 455 of file ETCurrentFE.hpp.

◆ array2D_Type

typedef std::vector< array1D_Type > array2D_Type
private

Definition at line 458 of file ETCurrentFE.hpp.

◆ array3D_Type

typedef std::vector< array2D_Type > array3D_Type
private

Definition at line 461 of file ETCurrentFE.hpp.

◆ array4D_Type

typedef std::vector< array3D_Type > array4D_Type
private

Definition at line 464 of file ETCurrentFE.hpp.

◆ array1D_vector_Type

typedef std::vector< VectorSmall<spaceDim> > array1D_vector_Type
private

Definition at line 467 of file ETCurrentFE.hpp.

◆ array2D_vector_Type

typedef std::vector< std::vector< VectorSmall<spaceDim> > > array2D_vector_Type
private

Definition at line 470 of file ETCurrentFE.hpp.

◆ array2D_matrix_Type

typedef std::vector< std::vector< MatrixSmall<spaceDim,spaceDim> > > array2D_matrix_Type
private

Definition at line 473 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 660 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ 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 718 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ ETCurrentFE() [3/4]

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

Copy constructor.

Parameters
otherFEThe currentFE to be copied

Definition at line 774 of file ETCurrentFE.hpp.

◆ ~ETCurrentFE()

~ETCurrentFE ( )
virtual

Destructor.

Definition at line 829 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 847 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 931 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 1034 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 300 of file ETCurrentFE.hpp.

◆ phi()

Real 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 value of the ith basis function in the qth quadrature node

Definition at line 311 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 324 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 337 of file ETCurrentFE.hpp.

◆ dphi() [1/2]

Real dphi ( const UInt i,
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
dxiThe direction of the derivative required (0 for d/dx, 1 for d/dy...)
qThe index of the quadrature node
Returns
The value of the ith basis function derived w.r. to dxi, in the qth quadrature node.

Definition at line 351 of file ETCurrentFE.hpp.

◆ dphi() [2/2]

VectorSmall<spaceDim> 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 366 of file ETCurrentFE.hpp.

◆ laplacian()

Real const& laplacian ( 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 380 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 392 of file ETCurrentFE.hpp.

◆ diameter()

Real diameter ( ) const
inline

Getter for the diameter of the current element.

Returns
The diameter of the current element

Definition at line 402 of file ETCurrentFE.hpp.

◆ detJac()

Real detJac ( ) const
inline

Getter for the eterminant of the jacobian of the current element.

Returns
The diameter of the current element

Definition at line 412 of file ETCurrentFE.hpp.

◆ metricTensor()

MatrixSmall<3,3> metricTensor ( ) const
inline

Getter for the metricTensor of the current element.

Returns
The metric of the current element

Definition at line 422 of file ETCurrentFE.hpp.

◆ metricVector()

VectorSmall<3> metricVector ( ) const
inline

Getter for the metricTensor of the current element.

Returns
The metric of the current element

Definition at line 432 of file ETCurrentFE.hpp.

◆ measure()

Real measure ( ) const
inline

Getter for the measure of the current element.

Returns
The measure of the current element

Definition at line 442 of file ETCurrentFE.hpp.

◆ operator=()

void operator= ( const ETCurrentFE< spaceDim, 1 > &  )
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 1054 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateCellNode() [1/2]

void updateCellNode ( const ElementType &  element)
private

Update the cell nodes.

Definition at line 1385 of file ETCurrentFE.hpp.

◆ updateCellNode() [2/2]

void updateCellNode ( const std::vector< VectorSmall< spaceDim > > &  ptsCoordinates)
private

Update the cell nodes with a std::vector of points.

Note here that this method is NOT a template specialization (which is impossible in this case, full specialization being forbidden in non specialized template classes), but an overload of the template method (which represents a better match in case the right arguments are passed).

Definition at line 1407 of file ETCurrentFE.hpp.

◆ updateDiameter()

void updateDiameter ( )
private

Update the diameter of the cell.

Definition at line 1427 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateMetric()

void updateMetric ( )
private

Update the metric of the cell.

Definition at line 1457 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateMeasure()

void updateMeasure ( )
private

Update the measure of the cell.

Definition at line 1531 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateQuadNode()

void updateQuadNode ( const UInt iQuadPt)
private

Update the quadrature nodes.

Definition at line 1228 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateJacobian()

void updateJacobian ( const UInt iQuadPt)
private

Update Jacobian.

Definition at line 1253 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateDetJacobian()

void updateDetJacobian ( const UInt iQuadPt)
private

Update DetJacobian.

+ Here is the caller graph for this function:

◆ updateInverseJacobian()

void updateInverseJacobian ( const UInt iQuadPt)
private

Update InverseJacobian.

+ Here is the caller graph for this function:

◆ updateWDet()

void updateWDet ( const UInt iQuadPt)
private

Update WeightedJacobian.

Definition at line 1282 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateDphi()

void updateDphi ( const UInt iQuadPt)
private

Update Dphi.

Definition at line 1297 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateD2phi()

void updateD2phi ( const UInt iQuadPt)
private

Update D2phi.

Definition at line 1323 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

◆ updateLaplacian()

void updateLaplacian ( const UInt iQuadPt)
private

Update Laplacian.

Definition at line 1358 of file ETCurrentFE.hpp.

+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ ExpressionAssembly::EvaluationPhiI

Friend to allow direct access to the raw data.

Definition at line 147 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationPhiJ

Friend to allow direct access to the raw data.

Definition at line 151 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationDphiI

Friend to allow direct access to the raw data.

Definition at line 155 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationDphiJ

Friend to allow direct access to the raw data.

Definition at line 159 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationLaplacianI

Friend to allow direct access to the raw data.

Definition at line 163 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationLaplacianJ

Friend to allow direct access to the raw data.

Definition at line 167 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationHK

friend class ExpressionAssembly::EvaluationHK
friend

Friend to allow direct access to the raw data.

Definition at line 171 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationDetJacobian

Friend to allow direct access to the raw data.

Definition at line 175 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationMetricTensor

Friend to allow direct access to the raw data.

Definition at line 179 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationMetricVector

Friend to allow direct access to the raw data.

Definition at line 183 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationPosition

Friend to allow direct access to the raw data.

Definition at line 187 of file ETCurrentFE.hpp.

◆ ExpressionAssembly::EvaluationMeas

Friend to allow direct access to the raw data.

Definition at line 191 of file ETCurrentFE.hpp.

Field Documentation

◆ S_spaceDimension

const UInt S_spaceDimension = spaceDim
static

Static value for the space dimension.

Definition at line 207 of file ETCurrentFE.hpp.

◆ S_fieldDimension

const UInt S_fieldDimension = 1
static

Static value for the dimension of the field (1 here as it is a scalar FE)

Definition at line 210 of file ETCurrentFE.hpp.

◆ M_referenceFE

const ReferenceFE* M_referenceFE
private

Definition at line 538 of file ETCurrentFE.hpp.

◆ M_geometricMap

const GeometricMap* M_geometricMap
private

Definition at line 541 of file ETCurrentFE.hpp.

◆ M_quadratureRule

const QuadratureRule* M_quadratureRule
private

Definition at line 544 of file ETCurrentFE.hpp.

◆ M_nbFEDof

UInt M_nbFEDof
private

Definition at line 547 of file ETCurrentFE.hpp.

◆ M_nbMapDof

UInt M_nbMapDof
private

Definition at line 550 of file ETCurrentFE.hpp.

◆ M_nbQuadPt

UInt M_nbQuadPt
private

Definition at line 553 of file ETCurrentFE.hpp.

◆ M_currentId

UInt M_currentId
private

Definition at line 556 of file ETCurrentFE.hpp.

◆ M_currentLocalId

UInt M_currentLocalId
private

Definition at line 559 of file ETCurrentFE.hpp.

◆ M_diameter

Real M_diameter
private

Definition at line 562 of file ETCurrentFE.hpp.

◆ M_measure

Real M_measure
private

Definition at line 565 of file ETCurrentFE.hpp.

◆ M_phi

array2D_Type M_phi
private

Definition at line 568 of file ETCurrentFE.hpp.

◆ M_phiMap

array2D_Type M_phiMap
private

Definition at line 571 of file ETCurrentFE.hpp.

◆ M_dphiReferenceFE

array3D_Type M_dphiReferenceFE
private

Definition at line 574 of file ETCurrentFE.hpp.

◆ M_d2phiReferenceFE

array4D_Type M_d2phiReferenceFE
private

Definition at line 577 of file ETCurrentFE.hpp.

◆ M_dphiGeometricMap

array3D_Type M_dphiGeometricMap
private

Definition at line 580 of file ETCurrentFE.hpp.

◆ M_cellNode

array2D_Type M_cellNode
private

Definition at line 583 of file ETCurrentFE.hpp.

◆ M_quadNode

array1D_vector_Type M_quadNode
private

Definition at line 586 of file ETCurrentFE.hpp.

◆ M_jacobian

array3D_Type M_jacobian
private

Definition at line 589 of file ETCurrentFE.hpp.

◆ M_detJacobian

array1D_Type M_detJacobian
private

Definition at line 592 of file ETCurrentFE.hpp.

◆ M_wDet

array1D_Type M_wDet
private

Definition at line 595 of file ETCurrentFE.hpp.

◆ M_tInverseJacobian

array3D_Type M_tInverseJacobian
private

Definition at line 598 of file ETCurrentFE.hpp.

◆ M_dphi

array2D_vector_Type M_dphi
private

Definition at line 601 of file ETCurrentFE.hpp.

◆ M_d2phi

array2D_matrix_Type M_d2phi
private

Definition at line 604 of file ETCurrentFE.hpp.

◆ M_laplacian

array2D_Type M_laplacian
private

Definition at line 607 of file ETCurrentFE.hpp.

◆ M_metricTensor

MatrixSmall<3,3> M_metricTensor
private

Definition at line 610 of file ETCurrentFE.hpp.

◆ M_metricVector

VectorSmall<3> M_metricVector
private

Definition at line 613 of file ETCurrentFE.hpp.


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