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

Detailed Description

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

Definition at line 33 of file GenericNaturalBoundaryConditionLocalAssembler.h.

#include <GenericNaturalBoundaryConditionLocalAssembler.h>

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

Classes

struct  NAndWeight
 

Public Member Functions

 GenericNaturalBoundaryConditionLocalAssembler (MeshLib::Element const &e, bool is_axially_symmetric, unsigned const integration_order)
 
- 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

IntegrationMethod 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, unsigned const integration_order)
 

Member Typedef Documentation

◆ NodalMatrixType

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

◆ NodalVectorType

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

◆ ShapeMatricesType

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

Constructor & Destructor Documentation

◆ GenericNaturalBoundaryConditionLocalAssembler()

template<typename ShapeFunction , typename IntegrationMethod , int GlobalDim>
ProcessLib::GenericNaturalBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::GenericNaturalBoundaryConditionLocalAssembler ( MeshLib::Element const &  e,
bool  is_axially_symmetric,
unsigned const  integration_order 
)
inline

Definition at line 79 of file GenericNaturalBoundaryConditionLocalAssembler.h.

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

Member Function Documentation

◆ initNsAndWeights()

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

Definition at line 54 of file GenericNaturalBoundaryConditionLocalAssembler.h.

56  {
57  IntegrationMethod const integration_method(integration_order);
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::initShapeMatrices().

Member Data Documentation

◆ _element

◆ _integration_method

◆ _ns_and_weights


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