OGS
NormalTractionBoundaryCondition.h
Go to the documentation of this file.
1
11#pragma once
12
13#include "BoundaryCondition.h"
14#include "MeshLib/MeshSubset.h"
16
17namespace ProcessLib
18{
19namespace NormalTractionBoundaryCondition
20{
21class NormalTractionBoundaryConditionLocalAssemblerInterface;
22
30template <int GlobalDim, template <typename /* shp fct */, int /* global dim */>
31 class LocalAssemblerImplementation>
33{
34public:
39 unsigned const integration_order, unsigned const shapefunction_order,
40 NumLib::LocalToGlobalIndexMap const& dof_table_bulk,
41 int const variable_id, MeshLib::Mesh const& bc_mesh,
42 ParameterLib::Parameter<double> const& pressure);
43
46 void applyNaturalBC(const double t, std::vector<GlobalVector*> const& x,
47 int const process_id, GlobalMatrix& K, GlobalVector& b,
48 GlobalMatrix* Jac) override;
49
50private:
52
55 std::vector<MeshLib::Node*> _nodes_subset;
56
57 std::unique_ptr<MeshLib::MeshSubset const> _mesh_subset_all_nodes;
58
61 std::unique_ptr<NumLib::LocalToGlobalIndexMap> _dof_table_boundary;
62
64 unsigned const _integration_order;
65
67 std::vector<
68 std::unique_ptr<NormalTractionBoundaryConditionLocalAssemblerInterface>>
70
72};
73
74template <int GlobalDim>
78 BaseLib::ConfigTree const& config, MeshLib::Mesh const& bc_mesh,
79 NumLib::LocalToGlobalIndexMap const& dof_table, int const variable_id,
80 unsigned const integration_order, unsigned const shapefunction_order,
81 std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
82 parameters);
83
84} // namespace NormalTractionBoundaryCondition
85} // namespace ProcessLib
86
Global vector based on Eigen vector.
Definition EigenVector.h:25
unsigned const _integration_order
Integration order for integration over the lower-dimensional elements.
std::vector< std::unique_ptr< NormalTractionBoundaryConditionLocalAssemblerInterface > > _local_assemblers
Local assemblers for each element of number of _elements.
std::unique_ptr< NormalTractionBoundaryCondition< GlobalDim, NormalTractionBoundaryConditionLocalAssembler > > createNormalTractionBoundaryCondition(BaseLib::ConfigTree const &config, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table, int const variable_id, unsigned const integration_order, unsigned const shapefunction_order, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const &parameters)