OGS
GenericNaturalBoundaryCondition.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include "BoundaryCondition.h"
8
9namespace ProcessLib
10{
12
13template <typename BoundaryConditionData,
14 template <typename /* shp fct */, int /* global dim */>
15 class LocalAssemblerImplementation>
17{
18public:
22 template <typename Data>
24 unsigned const integration_order, unsigned const shapefunction_order,
25 NumLib::LocalToGlobalIndexMap const& dof_table_bulk,
26 int const variable_id, int const component_id,
27 unsigned const global_dim, MeshLib::Mesh const& bc_mesh, Data&& data);
28
31 void applyNaturalBC(const double t, std::vector<GlobalVector*> const& x,
32 int const process_id, GlobalMatrix* K, GlobalVector& b,
33 GlobalMatrix* Jac) override;
34
35private:
37 BoundaryConditionData _data;
38
41
44 std::unique_ptr<NumLib::LocalToGlobalIndexMap> _dof_table_boundary;
45
47 std::vector<
48 std::unique_ptr<GenericNaturalBoundaryConditionLocalAssemblerInterface>>
50};
51
52} // namespace ProcessLib
53
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