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,
31 template <typename, typename, int> 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:28
unsigned const _integration_order
Integration order for integration over the lower-dimensional elements.
void applyNaturalBC(const double t, std::vector< GlobalVector * > const &x, int const process_id, GlobalMatrix &K, GlobalVector &b, GlobalMatrix *Jac) override
NormalTractionBoundaryCondition(unsigned const integration_order, unsigned const shapefunction_order, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, MeshLib::Mesh const &bc_mesh, ParameterLib::Parameter< double > const &pressure)
std::vector< std::unique_ptr< NormalTractionBoundaryConditionLocalAssemblerInterface > > _local_assemblers
Local assemblers for each element of number of _elements.
static const double t
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)