OGS
BHEInflowPythonBoundaryConditionPythonSideInterface.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
6namespace ProcessLib
7{
12{
13public:
20 virtual std::tuple<double /*time*/,
21 std::vector<double> /*Tin_val*/,
22 std::vector<double> /*Tout_val*/,
23 std::vector<int> /*bc_out_ids*/,
24 std::vector<double> /*BHE_flowrate*/>
26 {
28 return std::tuple<double,
29 std::vector<double>,
30 std::vector<double>,
31 std::vector<int>,
32 std::vector<double>>{
33 std::numeric_limits<double>::quiet_NaN(), {}, {}, {}, {}};
34 }
35
46 virtual std::tuple<bool, bool, std::vector<double>, std::vector<double>>
47 tespySolver(double /*t*/,
48 std::vector<double> const& /*Tin_val*/,
49 std::vector<double> const& /*Tout_val*/) const
50 {
51 _overridden_tespy = false;
52 return std::tuple<bool, bool, std::vector<double>, std::vector<double>>{
53 false, false, {}, {}};
54 }
55
69 virtual std::tuple<std::vector<double>, std::vector<double>>
71 double /*dt*/,
72 std::vector<double> const& /*Tin_val*/,
73 std::vector<double> const& /*Tout_val*/,
74 std::vector<double> const& /*BHE_flowrate*/) const
75 {
77 return {};
78 }
79
80 virtual void serverCommunicationPostTimestep(double /*t*/,
81 double /*dt*/,
82 std::vector<double> const& /*Tin_val*/,
83 std::vector<double> const& /*Tout_val*/,
84 std::vector<double> const& /*BHE_flowrate*/) const
85 {
87 }
88
95
100 bool isOverriddenTespy() const { return _overridden_tespy; }
101
110
115
116 // BHE network dataframe container
117 std::tuple<double,
118 std::vector<double>,
119 std::vector<double>,
120 std::vector<int>,
121 std::vector<double>>
123
125
126private:
129 mutable bool _overridden_essential = true;
132 mutable bool _overridden_tespy = true;
136
138};
139} // namespace ProcessLib
std::tuple< double, std::vector< double >, std::vector< double >, std::vector< int >, std::vector< double > > dataframe_network
virtual std::tuple< double, std::vector< double >, std::vector< double >, std::vector< int >, std::vector< double > > initializeDataContainer() const
virtual std::tuple< bool, bool, std::vector< double >, std::vector< double > > tespySolver(double, std::vector< double > const &, std::vector< double > const &) const
virtual void serverCommunicationPostTimestep(double, double, std::vector< double > const &, std::vector< double > const &, std::vector< double > const &) const
virtual std::tuple< std::vector< double >, std::vector< double > > serverCommunicationPreTimestep(double, double, std::vector< double > const &, std::vector< double > const &, std::vector< double > const &) const