OGS
BoreholeGeometry.cpp
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
#include "
BoreholeGeometry.h
"
5
6
#include "
BHEParameterValidation.h
"
7
#include "
BaseLib/ConfigTree.h
"
8
#include "
BaseLib/Error.h
"
9
#include "
ParameterLib/Parameter.h
"
10
11
namespace
ProcessLib
12
{
13
namespace
HeatTransportBHE
14
{
15
namespace
BHE
16
{
17
BoreholeGeometry
createBoreholeGeometry
(
18
BaseLib::ConfigTree
const
& config,
19
std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters)
20
{
21
const
auto
borehole_length =
23
config.
getConfigParameter
<
double
>(
"length"
);
24
if
(borehole_length <= 0)
25
{
26
OGS_FATAL
(
"Borehole length must be positive, got {:g}."
,
27
borehole_length);
28
}
29
30
auto
const
diameter_parameter_or_value =
32
config.
getConfigParameter
<std::string>(
"diameter"
);
33
auto
const
& diameter_parameter =
34
ParameterLib::getNamedOrCreateInlineParameter
(
35
diameter_parameter_or_value, parameters,
"borehole_diameter"
,
36
"borehole_diameter"
);
37
38
// Borehole diameter is physically time-invariant (fixed at drilling).
39
// Reject time-varying / mesh-node / non-scalar parameter types; warn for
40
// FunctionParameter (which may be spatial-only).
41
validateScalarTimeInvariantBHEParameter
(diameter_parameter,
42
"borehole_diameter"
);
43
44
return
{borehole_length, diameter_parameter};
45
}
46
}
// namespace BHE
47
}
// namespace HeatTransportBHE
48
}
// namespace ProcessLib
BHEParameterValidation.h
BoreholeGeometry.h
ConfigTree.h
Error.h
OGS_FATAL
#define OGS_FATAL(...)
Definition
Error.h:10
Parameter.h
BaseLib::ConfigTree
Definition
ConfigTree.h:101
BaseLib::ConfigTree::getConfigParameter
T getConfigParameter(std::string const ¶m) const
Definition
ConfigTree-impl.h:113
ParameterLib::getNamedOrCreateInlineParameter
Parameter< double > & getNamedOrCreateInlineParameter(std::string const ¶meter_or_value, std::vector< std::unique_ptr< ParameterBase > > ¶meters, std::string const &property_name, std::string const &inline_suffix)
Definition
ParameterLib/Parameter.cpp:126
ProcessLib::HeatTransportBHE::BHE
Definition
BHE_1P.cpp:20
ProcessLib::HeatTransportBHE::BHE::validateScalarTimeInvariantBHEParameter
void validateScalarTimeInvariantBHEParameter(ParameterLib::Parameter< double > const ¶m, std::string_view const role)
Definition
BHEParameterValidation.cpp:111
ProcessLib::HeatTransportBHE::BHE::createBoreholeGeometry
BoreholeGeometry createBoreholeGeometry(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > ¶meters)
Definition
BoreholeGeometry.cpp:17
ProcessLib::HeatTransportBHE
Definition
BHE_1P.cpp:18
ProcessLib
Definition
ProjectData.h:36
ProcessLib::HeatTransportBHE::BHE::BoreholeGeometry
Definition
BoreholeGeometry.h:26
ProcessLib
HeatTransportBHE
BHE
BoreholeGeometry.cpp
Generated by
1.14.0