OGS
PythonBoundaryConditionPythonSideInterface.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 namespace ProcessLib
14 {
19 {
20 public:
29  virtual std::pair<bool, double> getDirichletBCValue(
30  double /*t*/, std::array<double, 3> /*x*/, std::size_t /*node_id*/,
31  std::vector<double> const& /*primary_variables*/) const
32  {
33  _overridden_essential = false;
34  return {false, std::numeric_limits<double>::quiet_NaN()};
35  }
36 
45  virtual std::tuple<bool, double, std::vector<double>> getFlux(
46  double /*t*/,
47  std::array<double, 3> /*x*/,
48  std::vector<double> const& /*primary_variables*/) const
49  {
50  _overridden_natural = false;
51  return std::tuple<bool, double, std::vector<double>>{
52  false, std::numeric_limits<double>::quiet_NaN(), {}};
53  }
54 
61 
65  bool isOverriddenNatural() const { return _overridden_natural; }
66 
68 
69 private:
72  mutable bool _overridden_essential = true;
74  mutable bool _overridden_natural = true;
75 };
76 } // namespace ProcessLib
virtual std::tuple< bool, double, std::vector< double > > getFlux(double, std::array< double, 3 >, std::vector< double > const &) const
bool _overridden_natural
Tells if getFlux() has been overridden in the derived class in Python.
virtual std::pair< bool, double > getDirichletBCValue(double, std::array< double, 3 >, std::size_t, std::vector< double > const &) const