OGS
|
The TimeDependentHeterogeneousParameter class implements a parameter that varies in time and space, i.e., it is a function \( (t, x) \mapsto f(t, x) \in T^n \).
Classes | |
struct | ConstantParameter |
Single, constant value parameter. More... | |
struct | CoordinateSystem |
A local coordinate system used for tensor transformations. More... | |
struct | CurveScaledParameter |
struct | FunctionParameter |
struct | GroupBasedParameter |
struct | MeshElementParameter |
A parameter represented by a mesh property vector. More... | |
struct | MeshNodeParameter |
A parameter represented by a mesh property vector. More... | |
struct | Parameter |
struct | ParameterBase |
struct | RandomFieldMeshElementParameter |
A parameter represented by a mesh property vector. More... | |
struct | RasterParameter |
class | SpatialPosition |
class | TimeDependentHeterogeneousParameter |
Functions | |
std::unique_ptr< ParameterBase > | createConstantParameter (std::string const &name, BaseLib::ConfigTree const &config) |
template<int Dim> | |
static void | checkTransformationIsSON (Eigen::Matrix< double, Dim, Dim, Eigen::ColMajor, Dim, Dim > const &t) |
template<typename Derived > | |
static void | checkNormalization (Eigen::MatrixBase< Derived > const &vec, std::string_view const parmeter_name) |
Eigen::Matrix< double, 2, 2 > | getTransformationFromSingleBase2D (Parameter< double > const &unit_direction, SpatialPosition const &pos) |
Eigen::Matrix< double, 3, 3 > | getTransformationFromSingleBase3D (Parameter< double > const &unit_direction, SpatialPosition const &pos) |
Parameter< double > const * | parseBase1OrBase2 (BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, int const expected_component_number, std::string_view const base_tag_name) |
void | checkThirdBaseExistanceFor2D (BaseLib::ConfigTree const &config) |
void | confirmThirdBaseExplicit (BaseLib::ConfigTree const &config) |
std::optional< ParameterLib::CoordinateSystem > | createCoordinateSystemWithImplicitBase (BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters) |
std::optional< ParameterLib::CoordinateSystem > | createCoordinateSystem (std::optional< BaseLib::ConfigTree > const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters) |
std::unique_ptr< ParameterBase > | createCurveScaledParameter (std::string const &name, BaseLib::ConfigTree const &config, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves) |
std::unique_ptr< ParameterBase > | createFunctionParameter (std::string const &name, BaseLib::ConfigTree const &config, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves) |
std::unique_ptr< ParameterBase > | createGroupBasedParameter (std::string const &name, BaseLib::ConfigTree const &config, MeshLib::Mesh const &mesh) |
std::unique_ptr< ParameterBase > | createMeshElementParameter (std::string const &name, BaseLib::ConfigTree const &config, MeshLib::Mesh const &mesh) |
std::unique_ptr< ParameterBase > | createMeshNodeParameter (std::string const &name, BaseLib::ConfigTree const &config, MeshLib::Mesh const &mesh) |
std::unique_ptr< ParameterBase > | createParameter (BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< MeshLib::Mesh > > const &meshes, std::vector< GeoLib::NamedRaster > const &named_rasters, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves) |
std::optional< std::string > | isDefinedOnSameMesh (ParameterBase const ¶meter, MeshLib::Mesh const &mesh) |
std::unique_ptr< ParameterBase > | createRandomFieldMeshElementParameter (std::string const &name, BaseLib::ConfigTree const &config, MeshLib::Mesh &mesh) |
std::unique_ptr< ParameterBase > | createRasterParameter (std::string const &name, BaseLib::ConfigTree const &config, std::vector< GeoLib::NamedRaster > const &named_rasters) |
std::unique_ptr< ParameterBase > | createTimeDependentHeterogeneousParameter (std::string const &name, BaseLib::ConfigTree const &config) |
ParameterBase * | findParameterByName (std::string const ¶meter_name, std::vector< std::unique_ptr< ParameterBase > > const ¶meters) |
template<typename ParameterDataType > | |
Parameter< ParameterDataType > * | findParameterOptional (std::string const ¶meter_name, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr) |
template<typename ParameterDataType > | |
OGS_NO_DANGLING Parameter< ParameterDataType > & | findParameter (std::string const ¶meter_name, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr) |
template<typename ParameterDataType > | |
OGS_NO_DANGLING Parameter< ParameterDataType > & | findParameter (BaseLib::ConfigTree const &process_config, std::string const &tag, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr) |
template<typename ParameterDataType > | |
Parameter< ParameterDataType > * | findOptionalTagParameter (BaseLib::ConfigTree const &process_config, std::string const &tag, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr) |
Variables | |
static double const | tolerance = std::numeric_limits<double>::epsilon() |
|
static |
Definition at line 54 of file CoordinateSystem.cpp.
References OGS_FATAL, and tolerance.
Referenced by ParameterLib::CoordinateSystem::transformation().
void ParameterLib::checkThirdBaseExistanceFor2D | ( | BaseLib::ConfigTree const & | config | ) |
Definition at line 62 of file CreateCoordinateSystem.cpp.
References BaseLib::ConfigTree::getConfigSubtreeOptional(), and OGS_FATAL.
Referenced by createCoordinateSystem(), and createCoordinateSystemWithImplicitBase().
|
static |
Definition at line 27 of file CoordinateSystem.cpp.
References OGS_FATAL, and tolerance.
Referenced by ParameterLib::CoordinateSystem::transformation(), and ParameterLib::CoordinateSystem::transformation_3d().
void ParameterLib::confirmThirdBaseExplicit | ( | BaseLib::ConfigTree const & | config | ) |
Definition at line 75 of file CreateCoordinateSystem.cpp.
References BaseLib::ConfigTree::getConfigAttribute(), and OGS_FATAL.
Referenced by createCoordinateSystem(), and createCoordinateSystemWithImplicitBase().
std::unique_ptr< ParameterBase > ParameterLib::createConstantParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config ) |
Definition at line 19 of file ConstantParameter.cpp.
References BaseLib::ConfigTree::checkConfigParameter(), DBUG(), BaseLib::ConfigTree::getConfigParameter(), BaseLib::ConfigTree::getConfigParameterOptional(), and OGS_FATAL.
Referenced by createParameter().
std::optional< ParameterLib::CoordinateSystem > ParameterLib::createCoordinateSystem | ( | std::optional< BaseLib::ConfigTree > const & | config, |
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters ) |
Definition at line 142 of file CreateCoordinateSystem.cpp.
References checkThirdBaseExistanceFor2D(), confirmThirdBaseExplicit(), createCoordinateSystemWithImplicitBase(), findParameter(), OGS_FATAL, and parseBase1OrBase2().
Referenced by ProjectData::ProjectData().
std::optional< ParameterLib::CoordinateSystem > ParameterLib::createCoordinateSystemWithImplicitBase | ( | BaseLib::ConfigTree const & | config, |
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters ) |
Definition at line 87 of file CreateCoordinateSystem.cpp.
References checkThirdBaseExistanceFor2D(), confirmThirdBaseExplicit(), BaseLib::ConfigTree::getConfigAttribute(), BaseLib::ConfigTree::getConfigSubtree(), BaseLib::ConfigTree::getConfigSubtreeOptional(), OGS_FATAL, and parseBase1OrBase2().
Referenced by createCoordinateSystem().
std::unique_ptr< ParameterBase > ParameterLib::createCurveScaledParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config, | ||
std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const & | curves ) |
Definition at line 17 of file CurveScaledParameter.cpp.
References BaseLib::ConfigTree::checkConfigParameter(), DBUG(), BaseLib::ConfigTree::getConfigParameter(), and OGS_FATAL.
Referenced by createParameter().
std::unique_ptr< ParameterBase > ParameterLib::createFunctionParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config, | ||
std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const & | curves ) |
Definition at line 17 of file FunctionParameter.cpp.
References BaseLib::ConfigTree::checkConfigParameter(), and BaseLib::ConfigTree::getConfigSubtreeList().
Referenced by createParameter().
std::unique_ptr< ParameterBase > ParameterLib::createGroupBasedParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config, | ||
MeshLib::Mesh const & | mesh ) |
Definition at line 19 of file GroupBasedParameter.cpp.
References MeshLib::Cell, BaseLib::ConfigTree::checkConfigParameter(), DBUG(), BaseLib::ConfigTree::getConfigParameter(), BaseLib::ConfigTree::getConfigSubtreeList(), MeshLib::Mesh::getProperties(), MeshLib::Properties::getPropertyVector(), MeshLib::Node, and OGS_FATAL.
Referenced by createParameter().
std::unique_ptr< ParameterBase > ParameterLib::createMeshElementParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config, | ||
MeshLib::Mesh const & | mesh ) |
Definition at line 18 of file MeshElementParameter.cpp.
References MeshLib::Cell, BaseLib::ConfigTree::checkConfigParameter(), DBUG(), BaseLib::ConfigTree::getConfigParameter(), MeshLib::Mesh::getProperties(), MeshLib::Properties::getPropertyVector(), and OGS_FATAL.
Referenced by createParameter().
std::unique_ptr< ParameterBase > ParameterLib::createMeshNodeParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config, | ||
MeshLib::Mesh const & | mesh ) |
Definition at line 18 of file MeshNodeParameter.cpp.
References BaseLib::ConfigTree::checkConfigParameter(), DBUG(), BaseLib::ConfigTree::getConfigParameter(), MeshLib::Mesh::getProperties(), MeshLib::Properties::getPropertyVector(), MeshLib::Node, and OGS_FATAL.
Referenced by createParameter().
std::unique_ptr< ParameterBase > ParameterLib::createParameter | ( | BaseLib::ConfigTree const & | config, |
const std::vector< std::unique_ptr< MeshLib::Mesh > > & | meshes, | ||
std::vector< GeoLib::NamedRaster > const & | named_rasters, | ||
std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const & | curves ) |
Constructs a new ParameterBase from the given configuration.
The meshes
vector is used to set up parameters from mesh input data. The named_rasters
vector is used to set up parameters from raster input data.
Definition at line 27 of file Parameter.cpp.
References createConstantParameter(), createCurveScaledParameter(), createFunctionParameter(), createGroupBasedParameter(), createMeshElementParameter(), createMeshNodeParameter(), createRandomFieldMeshElementParameter(), createRasterParameter(), createTimeDependentHeterogeneousParameter(), MeshLib::findMeshByName(), BaseLib::ConfigTree::getConfigParameter(), INFO(), OGS_FATAL, and BaseLib::ConfigTree::peekConfigParameter().
Referenced by ProjectData::parseParameters().
std::unique_ptr< ParameterBase > ParameterLib::createRandomFieldMeshElementParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config, | ||
MeshLib::Mesh & | mesh ) |
Definition at line 22 of file RandomFieldMeshElementParameter.cpp.
References MeshLib::addPropertyToMesh(), MeshLib::Cell, BaseLib::ConfigTree::checkConfigParameter(), DBUG(), BaseLib::ConfigTree::getConfigParameter(), MeshLib::Mesh::getElements(), MeshLib::Mesh::getProperties(), MeshLib::Properties::getPropertyVector(), and OGS_FATAL.
Referenced by createParameter().
std::unique_ptr< ParameterBase > ParameterLib::createRasterParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config, | ||
std::vector< GeoLib::NamedRaster > const & | named_rasters ) |
Definition at line 19 of file RasterParameter.cpp.
References BaseLib::ConfigTree::checkConfigParameter(), DBUG(), and BaseLib::getIfOrError().
Referenced by createParameter().
std::unique_ptr< ParameterBase > ParameterLib::createTimeDependentHeterogeneousParameter | ( | std::string const & | name, |
BaseLib::ConfigTree const & | config ) |
Definition at line 113 of file TimeDependentHeterogeneousParameter.cpp.
References BaseLib::ConfigTree::checkConfigParameter(), BaseLib::ConfigTree::getConfigSubtree(), and OGS_FATAL.
Referenced by createParameter().
Parameter< ParameterDataType > * ParameterLib::findOptionalTagParameter | ( | BaseLib::ConfigTree const & | process_config, |
std::string const & | tag, | ||
std::vector< std::unique_ptr< ParameterBase > > const & | parameters, | ||
int const | num_components, | ||
MeshLib::Mesh const *const | mesh = nullptr ) |
Find a parameter of specific type for a name given in the process configuration under the optional tag. If the tag is not present, a nullptr will be returned. The parameter must have the specified number of components. In the process config a parameter is referenced by a name. For example it will be looking for a parameter named "K" in the list of parameters when the tag is "hydraulic_conductivity":
and return a pointer to that parameter. Additionally it checks for the type of the found parameter.
Definition at line 166 of file Utils.h.
References findParameter(), and BaseLib::ConfigTree::getConfigParameterOptional().
Referenced by ProcessLib::ComponentTransport::createComponentTransportProcess(), ProcessLib::LargeDeformation::createLargeDeformationProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::SmallDeformation::createSmallDeformationProcess(), and ProcessLib::ThermoMechanics::createThermoMechanicsProcess().
OGS_NO_DANGLING Parameter< ParameterDataType > & ParameterLib::findParameter | ( | BaseLib::ConfigTree const & | process_config, |
std::string const & | tag, | ||
std::vector< std::unique_ptr< ParameterBase > > const & | parameters, | ||
int const | num_components, | ||
MeshLib::Mesh const *const | mesh = nullptr ) |
Find a parameter of specific type for a name given in the process configuration under the tag. The parameter must have the specified number of components. In the process config a parameter is referenced by a name. For example it will be looking for a parameter named "K" in the list of parameters when the tag is "hydraulic_conductivity":
and return a reference to that parameter. Additionally it checks for the type of the found parameter.
Definition at line 135 of file Utils.h.
References findParameter(), and BaseLib::ConfigTree::getConfigParameter().
OGS_NO_DANGLING Parameter< ParameterDataType > & ParameterLib::findParameter | ( | std::string const & | parameter_name, |
std::vector< std::unique_ptr< ParameterBase > > const & | parameters, | ||
int const | num_components, | ||
MeshLib::Mesh const *const | mesh = nullptr ) |
Find a parameter of specific type for a given name.
ParameterDataType | the data type of the parameter |
parameter_name | name of the requested parameter |
parameters | list of parameters in which it will be searched |
num_components | the number of components of the parameters or zero if any number is acceptable |
mesh | an optional mesh pointer used for test whether the parameter is defined on the given mesh. No test is performed if the pointer is a nullptr. |
Definition at line 102 of file Utils.h.
References findParameterOptional(), and OGS_FATAL.
Referenced by ProcessLib::ProcessVariable::createBoundaryConditionsForDeactivatedSubDomains(), MaterialLib::Fracture::CohesiveZoneModeI::createCohesiveZoneModeI(), ProcessLib::ComponentTransport::createComponentTransportProcess(), ProcessLib::createConstraintDirichletBoundaryCondition(), createCoordinateSystem(), MaterialLib::Fracture::createCoulomb(), MaterialLib::Solids::Creep::createCreepBGRa(), MaterialPropertyLib::createCubicLawPermeability(), MaterialLib::Solids::Ehlers::createDamageProperties(), ProcessLib::createDeactivatedSubdomain(), ProcessLib::createDirichletBoundaryCondition(), ProcessLib::createDirichletBoundaryConditionWithinTimeInterval(), MaterialPropertyLib::createDupuitPermeability(), MaterialLib::Solids::Ehlers::createEhlers(), MaterialPropertyLib::createEmbeddedFracturePermeability(), MaterialPropertyLib::createGasPressureDependentPermeability(), ProcessLib::createHCNonAdvectiveFreeComponentFlowBoundaryCondition(), ProcessLib::HT::createHTProcess(), ProcessLib::LIE::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::createInitialStress(), MaterialPropertyLib::createKozenyCarmanModel(), MaterialLib::Fracture::createLinearElasticIsotropic(), MaterialLib::Solids::createLinearElasticIsotropic(), MaterialLib::Solids::createLinearElasticOrthotropic(), MaterialLib::Solids::createLinearElasticTransverseIsotropic(), ProcessLib::LiquidFlow::createLiquidFlowProcess(), MaterialLib::Solids::Lubby2::createLubby2(), ProcessLib::createNeumannBoundaryCondition(), ProcessLib::createNodalSourceTerm(), ProcessLib::NormalTractionBoundaryCondition::createNormalTractionBoundaryCondition(), MaterialPropertyLib::createOrthotropicEmbeddedFracturePermeability(), MaterialPropertyLib::createParameterProperty(), MaterialLib::PorousMedium::createPermeabilityModel(), MaterialPropertyLib::createPermeabilityMohrCoulombFailureIndexModel(), ProcessLib::PhaseField::createPhaseFieldProcess(), MaterialPropertyLib::createPorosityFromMassBalance(), ProcessLib::createPrimaryVariableConstraintDirichletBoundaryCondition(), ProcessLib::WellboreSimulator::createReservoirProperties(), ProcessLib::createRobinBoundaryCondition(), MaterialPropertyLib::createSaturationWeightedThermalConductivity(), ProcessLib::SmallDeformationNonlocal::createSmallDeformationNonlocalProcess(), ProcessLib::LIE::SmallDeformation::createSmallDeformationProcess(), ProcessLib::createSolutionDependentDirichletBoundaryCondition(), MaterialPropertyLib::createStrainDependentPermeability(), MaterialPropertyLib::createTemperatureDependentDiffusion(), ProcessLib::TH2M::createTH2MProcess(), ProcessLib::ThermoMechanicalPhaseField::createThermoMechanicalPhaseFieldProcess(), MaterialPropertyLib::createTransportPorosityFromMassBalance(), ProcessLib::TwoPhaseFlowWithPP::createTwoPhaseFlowWithPPProcess(), ProcessLib::TwoPhaseFlowWithPrho::createTwoPhaseFlowWithPrhoProcess(), ProcessLib::createVariableDependentNeumannBoundaryCondition(), MaterialPropertyLib::createVermaPruessModel(), ProcessLib::createVolumetricSourceTerm(), ProcessLib::WellboreSimulator::createWellboreGeometry(), ProcessLib::WellboreSimulator::createWellboreSimulatorProcess(), findOptionalTagParameter(), findParameter(), ParameterLib::CurveScaledParameter< T >::initialize(), ParameterLib::TimeDependentHeterogeneousParameter::initialize(), parseBase1OrBase2(), anonymous_namespace{CreateMFrontGeneric.cpp}::readMaterialProperties(), and anonymous_namespace{CreateMFrontGeneric.cpp}::readStateVariablesInitialValueProperties().
ParameterBase * ParameterLib::findParameterByName | ( | std::string const & | parameter_name, |
std::vector< std::unique_ptr< ParameterBase > > const & | parameters ) |
Find an optional parameter of specific type for a given name.
ParameterDataType | the data type of the parameter |
parameter_name | name of the requested parameter |
parameters | list of parameters in which it will be searched |
Definition at line 15 of file Utils.cpp.
References DBUG().
Referenced by findParameterOptional().
Parameter< ParameterDataType > * ParameterLib::findParameterOptional | ( | std::string const & | parameter_name, |
std::vector< std::unique_ptr< ParameterBase > > const & | parameters, | ||
int const | num_components, | ||
MeshLib::Mesh const *const | mesh = nullptr ) |
Find an optional parameter of specific type for a given name.
ParameterDataType | the data type of the parameter |
parameter_name | name of the requested parameter |
parameters | list of parameters in which it will be searched |
num_components | the number of components of the parameters or zero if any number is acceptable |
mesh | an optional mesh pointer used for test whether the parameter is defined on the given mesh. No test is performed if the pointer is a nullptr. |
Definition at line 43 of file Utils.h.
References findParameterByName(), isDefinedOnSameMesh(), and OGS_FATAL.
Referenced by findParameter().
Eigen::Matrix< double, 2, 2 > ParameterLib::getTransformationFromSingleBase2D | ( | Parameter< double > const & | unit_direction, |
SpatialPosition const & | pos ) |
Definition at line 131 of file CoordinateSystem.cpp.
Eigen::Matrix< double, 3, 3 > ParameterLib::getTransformationFromSingleBase3D | ( | Parameter< double > const & | unit_direction, |
SpatialPosition const & | pos ) |
Definition at line 173 of file CoordinateSystem.cpp.
Referenced by ParameterLib::CoordinateSystem::transformationFromSingleBase_3d().
std::optional< std::string > ParameterLib::isDefinedOnSameMesh | ( | ParameterBase const & | parameter, |
MeshLib::Mesh const & | mesh ) |
Checks whether the parameter can be used on the given mesh. The parameter's domain of definition can be arbitrary (like for constant parameters), or the parameter is defined on a mesh. In the latter case that mesh must be equal to the given mesh.
Definition at line 99 of file Parameter.cpp.
References MeshLib::Mesh::getName(), and ParameterLib::ParameterBase::mesh().
Referenced by findParameterOptional().
Parameter< double > const * ParameterLib::parseBase1OrBase2 | ( | BaseLib::ConfigTree const & | config, |
std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters, | ||
int const | expected_component_number, | ||
std::string_view const | base_tag_name ) |
Definition at line 28 of file CreateCoordinateSystem.cpp.
References findParameter(), BaseLib::ConfigTree::getValue(), and OGS_FATAL.
Referenced by createCoordinateSystem(), and createCoordinateSystemWithImplicitBase().
|
static |
Definition at line 24 of file CoordinateSystem.cpp.
Referenced by checkNormalization(), checkTransformationIsSON(), and ParameterLib::CoordinateSystem::transformation().