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 33 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 51 of file NsAndWeight.h.

52 {
53 if (order < 2)
54 {
55 return N_lower_;
56 }
57
58 if (order == 2)
59 {
60 return N_higher_;
61 }
62
64 "Only shape functions up to order 2 are supported currently. You "
65 "have requested order {}. There might be an error in the OGS "
66 "project file.",
67 order);
68 }
#define OGS_FATAL(...)
Definition Error.h:26

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()

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

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 73 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 74 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 75 of file NsAndWeight.h.

Referenced by NsAndWeight(), and weight().


The documentation for this struct was generated from the following file:
  • ProcessLib/BoundaryConditionAndSourceTerm/Python/Utils/NsAndWeight.h