template<typename ShapeFunction, typename IntegrationMethod, int GlobalDim>
class ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >
Definition at line 56 of file ConstraintDirichletBoundaryConditionLocalAssembler.h.
template<typename ShapeFunction , typename IntegrationMethod , int GlobalDim>
Precomputes the shape matrices for a given surface element.
- Parameters
-
surface_element | The surface element used for precomputing the |
is_axially_symmetric | Corrects integration measure for cylinder coordinates. |
integration_order | The order of the integration. |
bulk_mesh | The bulk mesh the process is defined on. |
bulk_ids | Pairs of bulk element ids and bulk element face ids. |
Definition at line 72 of file ConstraintDirichletBoundaryConditionLocalAssembler.h.
83 auto const shape_matrices =
90 auto const n_integration_points =
92 _ip_data.reserve(n_integration_points);
94 for (
unsigned ip = 0; ip < n_integration_points; ++ip)
99 _ip_data.emplace_back(shape_matrices[ip].detJ,
100 shape_matrices[ip].integralMeasure,
102 std::move(bulk_element_point));
virtual std::size_t getID() const final
Returns the ID of the element.
Eigen::Vector3d const _surface_element_normal
ShapeMatrixPolicyType< ShapeFunction, GlobalDim > ShapeMatricesType
std::vector< IntegrationPointData > _ip_data
IntegrationMethod const _integration_method
std::size_t const _bulk_element_id
MeshLib::Element const & _surface_element
MathLib::Point3d getBulkElementPoint(Tri const &, std::size_t const face_id, MathLib::WeightedPoint1D const &wp)
Eigen::Vector3d calculateNormalizedSurfaceNormal(MeshLib::Element const &surface_element, MeshLib::Element const &bulk_element)
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)
@ N_J
calculates N, dNdr, J, and detJ
References ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::_bulk_element_id, ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::_integration_method, ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::_ip_data, ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::_surface_element, MeshLib::getBulkElementPoint(), MeshLib::Element::getID(), NumLib::initShapeMatrices(), and NumLib::N_J.
template<typename ShapeFunction , typename IntegrationMethod , int GlobalDim>
Integration for the element with the id element_id
.
- Parameters
-
x | The global vector containing the values for numerical integration. |
t | The point in time the the integration will be performed. |
getFlux | The function of the constraining process used to calculate the flux. |
Implements ProcessLib::ConstraintDirichletBoundaryConditionLocalAssemblerInterface.
Definition at line 112 of file ConstraintDirichletBoundaryConditionLocalAssembler.h.
118 auto const n_integration_points =
122 double integrated_value = 0;
123 for (
unsigned ip = 0; ip < n_integration_points; ip++)
125 auto const bulk_flux = getFlux(
129 double const bulk_grad_times_normal(
130 Eigen::Map<Eigen::RowVectorXd const>(bulk_flux.data(),
135 bulk_grad_times_normal *
136 _ip_data[ip].detJ_times_integralMeasure_times_weight;
138 return integrated_value;
References ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::_bulk_element_id, ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::_integration_method, ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::_ip_data, and ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, IntegrationMethod, GlobalDim >::_surface_element_normal.