OGS
GenericNaturalBoundaryCondition.h
Go to the documentation of this file.
1
11#pragma once
12
13#include "BoundaryCondition.h"
14#include "MeshLib/MeshSubset.h"
15
16namespace ProcessLib
17{
18class GenericNaturalBoundaryConditionLocalAssemblerInterface;
19
20template <typename BoundaryConditionData,
21 template <typename /* shp fct */, int /* global dim */>
22 class LocalAssemblerImplementation>
24{
25public:
29 template <typename Data>
31 unsigned const integration_order, unsigned const shapefunction_order,
32 NumLib::LocalToGlobalIndexMap const& dof_table_bulk,
33 int const variable_id, int const component_id,
34 unsigned const global_dim, MeshLib::Mesh const& bc_mesh, Data&& data);
35
38 void applyNaturalBC(const double t, std::vector<GlobalVector*> const& x,
39 int const process_id, GlobalMatrix& K, GlobalVector& b,
40 GlobalMatrix* Jac) override;
41
42private:
44 BoundaryConditionData _data;
45
48
51 std::unique_ptr<NumLib::LocalToGlobalIndexMap> _dof_table_boundary;
52
54 std::vector<
55 std::unique_ptr<GenericNaturalBoundaryConditionLocalAssemblerInterface>>
57};
58
59} // namespace ProcessLib
60
Global vector based on Eigen vector.
Definition EigenVector.h:25
MeshLib::Mesh const & _bc_mesh
A lower-dimensional mesh on which the boundary condition is defined.
BoundaryConditionData _data
Data used in the assembly of the specific boundary condition.
std::vector< std::unique_ptr< GenericNaturalBoundaryConditionLocalAssemblerInterface > > _local_assemblers
Local assemblers for each element of number of _elements.
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _dof_table_boundary