OGS
GenericNaturalBoundaryCondition.h
Go to the documentation of this file.
1
10
11#pragma once
12
13#include "BoundaryCondition.h"
14#include "MeshLib/MeshSubset.h"
15
16namespace ProcessLib
17{
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
MathLib::EigenMatrix GlobalMatrix
MathLib::EigenVector GlobalVector
GenericNaturalBoundaryCondition(unsigned const integration_order, unsigned const shapefunction_order, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, int const component_id, unsigned const global_dim, MeshLib::Mesh const &bc_mesh, Data &&data)
void applyNaturalBC(const double t, std::vector< GlobalVector * > const &x, int const process_id, GlobalMatrix *K, GlobalVector &b, GlobalMatrix *Jac) override