OGS
ProcessLib::BoundaryConditionAndSourceTerm::Python::NsAndWeight< ShapeFunction, LowerOrderShapeFunction, ShapeMatrix, LowerOrderShapeMatrix > Struct Template Reference

Detailed Description

template<typename ShapeFunction, typename LowerOrderShapeFunction, typename ShapeMatrix, typename LowerOrderShapeMatrix>
struct ProcessLib::BoundaryConditionAndSourceTerm::Python::NsAndWeight< ShapeFunction, LowerOrderShapeFunction, ShapeMatrix, LowerOrderShapeMatrix >

Holds shape matrices and integration weight.

This struct facilitates the handling of shape functions of different order defined on the same mesh element, e.g., for Taylor-Hood elements.

Note
The Shape function template parameters are necessary only to distinguish between different specializations of this class.

Definition at line 26 of file NsAndWeight.h.

#include <NsAndWeight.h>

Public Member Functions

 NsAndWeight (ShapeMatrix &&N1, LowerOrderShapeMatrix &&N2, double const weight)
double weight () const
Eigen::Ref< const Eigen::RowVectorXd > N (unsigned order) const
ShapeMatrix const & NHigherOrder () const

Private Attributes

ShapeMatrix N_higher_
LowerOrderShapeMatrix N_lower_
double weight_

Constructor & Destructor Documentation

◆ NsAndWeight()

template<typename ShapeFunction, typename LowerOrderShapeFunction, typename ShapeMatrix, typename LowerOrderShapeMatrix>
ProcessLib::BoundaryConditionAndSourceTerm::Python::NsAndWeight< ShapeFunction, LowerOrderShapeFunction, ShapeMatrix, LowerOrderShapeMatrix >::NsAndWeight ( ShapeMatrix && N1,
LowerOrderShapeMatrix && N2,
double const weight )
inline

Member Function Documentation

◆ N()

template<typename ShapeFunction, typename LowerOrderShapeFunction, typename ShapeMatrix, typename LowerOrderShapeMatrix>
Eigen::Ref< const Eigen::RowVectorXd > ProcessLib::BoundaryConditionAndSourceTerm::Python::NsAndWeight< ShapeFunction, LowerOrderShapeFunction, ShapeMatrix, LowerOrderShapeMatrix >::N ( unsigned order) const
inline

Definition at line 44 of file NsAndWeight.h.

45 {
46 if (order < 2)
47 {
48 return N_lower_;
49 }
50
51 if (order == 2)
52 {
53 return N_higher_;
54 }
55
57 "Only shape functions up to order 2 are supported currently. You "
58 "have requested order {}. There might be an error in the OGS "
59 "project file.",
60 order);
61 }
#define OGS_FATAL(...)
Definition Error.h:19

References N_higher_, N_lower_, and OGS_FATAL.

Referenced by ProcessLib::BoundaryConditionAndSourceTerm::Python::BcAndStLocalAssemblerImpl< BcOrStData, ShapeFunction, LowerOrderShapeFunction, GlobalDim >::assembleLocalJacobian(), ProcessLib::BoundaryConditionAndSourceTerm::Python::BcAndStLocalAssemblerImpl< BcOrStData, ShapeFunction, LowerOrderShapeFunction, GlobalDim >::assembleLocalRhs(), and ProcessLib::BoundaryConditionAndSourceTerm::Python::interpolate().

◆ NHigherOrder()

template<typename ShapeFunction, typename LowerOrderShapeFunction, typename ShapeMatrix, typename LowerOrderShapeMatrix>
ShapeMatrix const & ProcessLib::BoundaryConditionAndSourceTerm::Python::NsAndWeight< ShapeFunction, LowerOrderShapeFunction, ShapeMatrix, LowerOrderShapeMatrix >::NHigherOrder ( ) const
inline

◆ weight()

Member Data Documentation

◆ N_higher_

template<typename ShapeFunction, typename LowerOrderShapeFunction, typename ShapeMatrix, typename LowerOrderShapeMatrix>
ShapeMatrix ProcessLib::BoundaryConditionAndSourceTerm::Python::NsAndWeight< ShapeFunction, LowerOrderShapeFunction, ShapeMatrix, LowerOrderShapeMatrix >::N_higher_
private

Definition at line 66 of file NsAndWeight.h.

Referenced by NsAndWeight(), N(), and NHigherOrder().

◆ N_lower_

template<typename ShapeFunction, typename LowerOrderShapeFunction, typename ShapeMatrix, typename LowerOrderShapeMatrix>
LowerOrderShapeMatrix ProcessLib::BoundaryConditionAndSourceTerm::Python::NsAndWeight< ShapeFunction, LowerOrderShapeFunction, ShapeMatrix, LowerOrderShapeMatrix >::N_lower_
private

Definition at line 67 of file NsAndWeight.h.

Referenced by NsAndWeight(), and N().

◆ weight_

template<typename ShapeFunction, typename LowerOrderShapeFunction, typename ShapeMatrix, typename LowerOrderShapeMatrix>
double ProcessLib::BoundaryConditionAndSourceTerm::Python::NsAndWeight< ShapeFunction, LowerOrderShapeFunction, ShapeMatrix, LowerOrderShapeMatrix >::weight_
private

Definition at line 68 of file NsAndWeight.h.

Referenced by NsAndWeight(), and weight().


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