Loading [MathJax]/extensions/tex2jax.js
OGS
ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim > Class Template Referencefinal

Detailed Description

template<typename ShapeFunctionDisplacement, int GlobalDim>
class ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >

Definition at line 51 of file NormalTractionBoundaryConditionLocalAssembler.h.

#include <NormalTractionBoundaryConditionLocalAssembler.h>

Inheritance diagram for ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >:
[legend]
Collaboration diagram for ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >:
[legend]

Public Types

using ShapeMatricesType
using GlobalDimVectorType = typename ShapeMatricesType::GlobalDimVectorType
using NodalVectorType = typename ShapeMatricesType::NodalVectorType

Public Member Functions

 NormalTractionBoundaryConditionLocalAssembler (MeshLib::Element const &e, std::size_t const local_matrix_size, NumLib::GenericIntegrationMethod const &integration_method, bool const is_axially_symmetric, ParameterLib::Parameter< double > const &pressure, std::vector< Eigen::Vector3d > const &element_normals)
void assemble (std::size_t const id, NumLib::LocalToGlobalIndexMap const &dof_table_boundary, double const t, std::vector< GlobalVector * > const &, GlobalMatrix *, GlobalVector &local_rhs, GlobalMatrix *) override
Public Member Functions inherited from ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssemblerInterface
virtual ~NormalTractionBoundaryConditionLocalAssemblerInterface ()=default

Public Attributes

 EIGEN_MAKE_ALIGNED_OPERATOR_NEW

Private Attributes

NumLib::GenericIntegrationMethod const & _integration_method
ParameterLib::Parameter< double > const & _pressure
std::vector< IntegrationPointData< ShapeMatricesType >, Eigen::aligned_allocator< IntegrationPointData< ShapeMatricesType > > > _ip_data
ShapeMatricesType::template VectorType< displacement_size_local_rhs
MeshLib::Element const & _element

Static Private Attributes

static const int displacement_size

Member Typedef Documentation

◆ GlobalDimVectorType

template<typename ShapeFunctionDisplacement, int GlobalDim>
using ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::GlobalDimVectorType = typename ShapeMatricesType::GlobalDimVectorType

◆ NodalVectorType

template<typename ShapeFunctionDisplacement, int GlobalDim>
using ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::NodalVectorType = typename ShapeMatricesType::NodalVectorType

◆ ShapeMatricesType

template<typename ShapeFunctionDisplacement, int GlobalDim>
using ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::ShapeMatricesType
Initial value:
EigenFixedShapeMatrixPolicy< ShapeFunction, GlobalDim > ShapeMatrixPolicyType

Definition at line 55 of file NormalTractionBoundaryConditionLocalAssembler.h.

Constructor & Destructor Documentation

◆ NormalTractionBoundaryConditionLocalAssembler()

template<typename ShapeFunctionDisplacement, int GlobalDim>
ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::NormalTractionBoundaryConditionLocalAssembler ( MeshLib::Element const & e,
std::size_t const local_matrix_size,
NumLib::GenericIntegrationMethod const & integration_method,
bool const is_axially_symmetric,
ParameterLib::Parameter< double > const & pressure,
std::vector< Eigen::Vector3d > const & element_normals )
inline

Definition at line 60 of file NormalTractionBoundaryConditionLocalAssembler.h.

69 _element(e)
70 {
72
73 unsigned const n_integration_points =
74 _integration_method.getNumberOfPoints();
75
77
78 auto const shape_matrices_u =
82
83 for (unsigned ip = 0; ip < n_integration_points; ip++)
84 {
85 double const integration_weight =
86 _integration_method.getWeightedPoint(ip).getWeight() *
87 shape_matrices_u[ip].integralMeasure *
88 shape_matrices_u[ip].detJ;
89
90 _ip_data.emplace_back(shape_matrices_u[ip].N,
91 element_normals[e.getID()].head<GlobalDim>(),
93 }
94 }
std::vector< IntegrationPointData< ShapeMatricesType >, Eigen::aligned_allocator< IntegrationPointData< ShapeMatricesType > > > _ip_data

References _element, _integration_method, _ip_data, _local_rhs, _pressure, MeshLib::Element::getID(), and NumLib::initShapeMatrices().

Member Function Documentation

◆ assemble()

template<typename ShapeFunctionDisplacement, int GlobalDim>
void ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::assemble ( std::size_t const id,
NumLib::LocalToGlobalIndexMap const & dof_table_boundary,
double const t,
std::vector< GlobalVector * > const & ,
GlobalMatrix * ,
GlobalVector & local_rhs,
GlobalMatrix *  )
inlineoverridevirtual

Implements ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssemblerInterface.

Definition at line 96 of file NormalTractionBoundaryConditionLocalAssembler.h.

101 {
102 _local_rhs.setZero();
103
104 unsigned const n_integration_points =
105 _integration_method.getNumberOfPoints();
106
108 _pressure.getNodalValuesOnElement(_element, t);
109
110 for (unsigned ip = 0; ip < n_integration_points; ip++)
111 {
112 auto const& w = _ip_data[ip].integration_weight;
113 auto const& N = _ip_data[ip].N;
114 auto const& n = _ip_data[ip].n;
115
121 for (int i = 0; i < GlobalDim; ++i)
122 {
123 N_u.template block<1, displacement_size / GlobalDim>(
125 .noalias() = N;
126 }
127
128 _local_rhs.noalias() -= n.transpose() * N_u * pressure.dot(N) * w;
129 }
130
133 }
std::vector< GlobalIndexType > getIndices(std::size_t const mesh_item_id, NumLib::LocalToGlobalIndexMap const &dof_table)

References _element, _integration_method, _ip_data, _local_rhs, _pressure, MathLib::EigenVector::add(), displacement_size, and NumLib::getIndices().

Member Data Documentation

◆ _element

template<typename ShapeFunctionDisplacement, int GlobalDim>
MeshLib::Element const& ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::_element
private

◆ _integration_method

template<typename ShapeFunctionDisplacement, int GlobalDim>
NumLib::GenericIntegrationMethod const& ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::_integration_method
private

◆ _ip_data

template<typename ShapeFunctionDisplacement, int GlobalDim>
std::vector< IntegrationPointData<ShapeMatricesType>, Eigen::aligned_allocator<IntegrationPointData<ShapeMatricesType> > > ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::_ip_data
private

◆ _local_rhs

template<typename ShapeFunctionDisplacement, int GlobalDim>
ShapeMatricesType::template VectorType<displacement_size> ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::_local_rhs
private

◆ _pressure

template<typename ShapeFunctionDisplacement, int GlobalDim>
ParameterLib::Parameter<double> const& ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::_pressure
private

◆ displacement_size

template<typename ShapeFunctionDisplacement, int GlobalDim>
const int ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::displacement_size
staticprivate
Initial value:
=
ShapeFunctionDisplacement::NPOINTS * GlobalDim

Definition at line 139 of file NormalTractionBoundaryConditionLocalAssembler.h.

Referenced by assemble().

◆ EIGEN_MAKE_ALIGNED_OPERATOR_NEW

template<typename ShapeFunctionDisplacement, int GlobalDim>
ProcessLib::NormalTractionBoundaryCondition::NormalTractionBoundaryConditionLocalAssembler< ShapeFunctionDisplacement, GlobalDim >::EIGEN_MAKE_ALIGNED_OPERATOR_NEW

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