OGS
ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim > Class Template Reference

Detailed Description

template<typename ShapeFunction, int GlobalDim>
class ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >

Definition at line 34 of file GenericNaturalBoundaryConditionLocalAssembler.h.

#include <GenericNaturalBoundaryConditionLocalAssembler.h>

Inheritance diagram for ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >:
[legend]
Collaboration diagram for ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >:
[legend]

Classes

struct  NAndWeight
 

Public Member Functions

 GenericNaturalBoundaryConditionLocalAssembler (MeshLib::Element const &e, bool is_axially_symmetric, NumLib::GenericIntegrationMethod const &integration_method)
 
- Public Member Functions inherited from ProcessLib::GenericNaturalBoundaryConditionLocalAssemblerInterface
virtual ~GenericNaturalBoundaryConditionLocalAssemblerInterface ()=default
 
virtual void assemble (std::size_t const id, NumLib::LocalToGlobalIndexMap const &dof_table_boundary, double const t, std::vector< GlobalVector * > const &x, int const process_id, GlobalMatrix *K, GlobalVector &b, GlobalMatrix *Jac)=0
 

Protected Types

using ShapeMatricesType = ShapeMatrixPolicyType<ShapeFunction, GlobalDim>
 
using NodalMatrixType = typename ShapeMatricesType::NodalMatrixType
 
using NodalVectorType = typename ShapeMatricesType::NodalVectorType
 

Protected Attributes

NumLib::GenericIntegrationMethod const & _integration_method
 
std::vector< NAndWeight, Eigen::aligned_allocator< NAndWeight > > const _ns_and_weights
 
MeshLib::Element const & _element
 

Static Private Member Functions

static std::vector< NAndWeight, Eigen::aligned_allocator< NAndWeight > > initNsAndWeights (MeshLib::Element const &e, bool is_axially_symmetric, NumLib::GenericIntegrationMethod const &integration_method)
 

Member Typedef Documentation

◆ NodalMatrixType

template<typename ShapeFunction , int GlobalDim>
using ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::NodalMatrixType = typename ShapeMatricesType::NodalMatrixType
protected

◆ NodalVectorType

template<typename ShapeFunction , int GlobalDim>
using ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::NodalVectorType = typename ShapeMatricesType::NodalVectorType
protected

◆ ShapeMatricesType

template<typename ShapeFunction , int GlobalDim>
using ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::ShapeMatricesType = ShapeMatrixPolicyType<ShapeFunction, GlobalDim>
protected

Constructor & Destructor Documentation

◆ GenericNaturalBoundaryConditionLocalAssembler()

template<typename ShapeFunction , int GlobalDim>
ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::GenericNaturalBoundaryConditionLocalAssembler ( MeshLib::Element const & e,
bool is_axially_symmetric,
NumLib::GenericIntegrationMethod const & integration_method )
inline

Definition at line 79 of file GenericNaturalBoundaryConditionLocalAssembler.h.

82 : _integration_method(integration_method),
84 initNsAndWeights(e, is_axially_symmetric, integration_method)),
85 _element(e)
86 {
87 }
static std::vector< NAndWeight, Eigen::aligned_allocator< NAndWeight > > initNsAndWeights(MeshLib::Element const &e, bool is_axially_symmetric, NumLib::GenericIntegrationMethod const &integration_method)
std::vector< NAndWeight, Eigen::aligned_allocator< NAndWeight > > const _ns_and_weights

Member Function Documentation

◆ initNsAndWeights()

template<typename ShapeFunction , int GlobalDim>
static std::vector< NAndWeight, Eigen::aligned_allocator< NAndWeight > > ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::initNsAndWeights ( MeshLib::Element const & e,
bool is_axially_symmetric,
NumLib::GenericIntegrationMethod const & integration_method )
inlinestaticprivate

Definition at line 55 of file GenericNaturalBoundaryConditionLocalAssembler.h.

57 {
58 std::vector<NAndWeight, Eigen::aligned_allocator<NAndWeight>>
59 ns_and_weights;
60 ns_and_weights.reserve(integration_method.getNumberOfPoints());
61
62 auto sms = NumLib::initShapeMatrices<ShapeFunction, ShapeMatricesType,
63 GlobalDim>(e, is_axially_symmetric,
64 integration_method);
65 for (unsigned ip = 0; ip < sms.size(); ++ip)
66 {
67 auto& sm = sms[ip];
68 double const w =
69 sm.detJ * sm.integralMeasure *
70 integration_method.getWeightedPoint(ip).getWeight();
71
72 ns_and_weights.emplace_back(std::move(sm.N), w);
73 }
74
75 return ns_and_weights;
76 }
std::vector< typename ShapeMatricesType::ShapeMatrices, Eigen::aligned_allocator< typename ShapeMatricesType::ShapeMatrices > > initShapeMatrices(MeshLib::Element const &e, bool const is_axially_symmetric, IntegrationMethod const &integration_method)

References NumLib::GenericIntegrationMethod::getNumberOfPoints(), MathLib::WeightedPoint::getWeight(), NumLib::GenericIntegrationMethod::getWeightedPoint(), and NumLib::initShapeMatrices().

Member Data Documentation

◆ _element

◆ _integration_method

◆ _ns_and_weights


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