OGS
BoundaryCondition.h
Go to the documentation of this file.
1
11#pragma once
12
14
15namespace MeshLib
16{
17class Mesh;
18}
19
20namespace NumLib
21{
22class LocalToGlobalIndexMap;
23template <typename>
24struct IndexValueVector;
25} // namespace NumLib
26namespace ParameterLib
27{
28struct ParameterBase;
29}
30namespace ProcessLib
31{
32struct BoundaryConditionConfig;
33class Process;
34
36{
37public:
40 virtual void applyNaturalBC(const double /*t*/,
41 std::vector<GlobalVector*> const& /*x*/,
42 int const /*process_id*/, GlobalMatrix* /*K*/,
43 GlobalVector& /*b*/, GlobalMatrix* /*Jac*/)
44 {
45 // By default it is assumed that the BC is not a natural BC. Therefore
46 // there is nothing to do here.
47 }
48
51 const double /*t*/, GlobalVector const& /*x*/,
53 {
54 // By default it is assumed that the BC is not an essential BC.
55 // Therefore there is nothing to do here.
56 }
57
58 virtual void preTimestep(const double /*t*/,
59 std::vector<GlobalVector*> const& /*x*/,
60 int const /*process_id*/)
61 {
62 // A hook added for solution dependent dirichlet
63 }
64
65 virtual void postTimestep(const double /*t*/,
66 std::vector<GlobalVector*> const& /*x*/,
67 int const /*process_id*/)
68 {
69 // A hook added for solution dependent dirichlet
70 }
71
72 virtual ~BoundaryCondition() = default;
73};
74
75} // namespace ProcessLib
Global vector based on Eigen vector.
Definition EigenVector.h:25
virtual void getEssentialBCValues(const double, GlobalVector const &, NumLib::IndexValueVector< GlobalIndexType > &) const
Writes the values of essential BCs to bc_values.
virtual void applyNaturalBC(const double, std::vector< GlobalVector * > const &, int const, GlobalMatrix *, GlobalVector &, GlobalMatrix *)
virtual void preTimestep(const double, std::vector< GlobalVector * > const &, int const)
virtual void postTimestep(const double, std::vector< GlobalVector * > const &, int const)
virtual ~BoundaryCondition()=default