OGS 6.2.0-244-g47b8a9a9d
BoundaryCondition.h
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include "NumLib/NumericsConfig.h"
13 
14 namespace MeshLib
15 {
16 class Mesh;
17 }
18 
19 namespace NumLib
20 {
21 class LocalToGlobalIndexMap;
22 template <typename>
23 struct IndexValueVector;
24 }
25 namespace ParameterLib
26 {
27 struct ParameterBase;
28 }
29 namespace ProcessLib
30 {
31 struct BoundaryConditionConfig;
32 class Process;
33 
35 {
36 public:
39  virtual void applyNaturalBC(const double /*t*/, GlobalVector const& /*x*/,
40  GlobalMatrix& /*K*/, GlobalVector& /*b*/,
41  GlobalMatrix* /*Jac*/)
42  {
43  // By default it is assumed that the BC is not a natural BC. Therefore
44  // there is nothing to do here.
45  }
46 
48  virtual void getEssentialBCValues(
49  const double /*t*/, GlobalVector const& /*x*/,
50  NumLib::IndexValueVector<GlobalIndexType>& /*bc_values*/) const
51  {
52  // By default it is assumed that the BC is not an essential BC.
53  // Therefore there is nothing to do here.
54  }
55 
56  virtual void preTimestep(const double /*t*/, GlobalVector const& /*x*/)
57  {
58  // A hook added for solution dependent dirichlet
59  }
60 
61  virtual ~BoundaryCondition() = default;
62 };
63 
64 } // namespace ProcessLib
virtual void applyNaturalBC(const double, GlobalVector const &, GlobalMatrix &, GlobalVector &, GlobalMatrix *)
virtual void getEssentialBCValues(const double, GlobalVector const &, NumLib::IndexValueVector< GlobalIndexType > &) const
Writes the values of essential BCs to bc_values.
Interface for heuristic search length strategy.
Definition: ProjectData.h:29
virtual void preTimestep(const double, GlobalVector const &)