Skip to content
Snippets Groups Projects
Commit 6a043200 authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[MPL] Rewrite string to PropertyType conversion.

parent 16694658
No related branches found
No related tags found
No related merge requests found
......@@ -104,258 +104,6 @@ enum PropertyType : int
number_of_properties
};
/// This function converts a string (e.g. a string from the configuration-tree)
/// into one of the entries of the PropertyType enumerator. To avoid confusion,
/// I suggest that the syntax of the properties in the input-files (i.e. the
/// strings) have to be identical to the syntax of the entries in the
/// enumerator.
inline PropertyType convertStringToProperty(std::string const& inString)
{
if (boost::iequals(inString, "acentric_factor"))
{
return PropertyType::acentric_factor;
}
if (boost::iequals(inString, "binary_interaction_coefficient"))
{
return PropertyType::binary_interaction_coefficient;
}
if (boost::iequals(inString, "biot_coefficient"))
{
return PropertyType::biot_coefficient;
}
if (boost::iequals(inString, "bishops_effective_stress"))
{
return PropertyType::bishops_effective_stress;
}
if (boost::iequals(inString, "brooks_corey_exponent"))
{
return PropertyType::brooks_corey_exponent;
}
if (boost::iequals(inString, "bulk_modulus"))
{
return PropertyType::bulk_modulus;
}
if (boost::iequals(inString, "capillary_pressure"))
{
return PropertyType::capillary_pressure;
}
if (boost::iequals(inString, "critical_density"))
{
return PropertyType::critical_density;
}
if (boost::iequals(inString, "critical_pressure"))
{
return PropertyType::critical_pressure;
}
if (boost::iequals(inString, "critical_temperature"))
{
return PropertyType::critical_temperature;
}
if (boost::iequals(inString, "compressibility"))
{
return PropertyType::compressibility;
}
if (boost::iequals(inString, "concentration"))
{
return PropertyType::concentration;
}
if (boost::iequals(inString, "decay_rate"))
{
return PropertyType::decay_rate;
}
if (boost::iequals(inString, "density"))
{
return PropertyType::density;
}
if (boost::iequals(inString, "diffusion"))
{
return PropertyType::diffusion;
}
if (boost::iequals(inString, "drhodT"))
{
return PropertyType::drhodT;
}
if (boost::iequals(inString, "effective_stress"))
{
return PropertyType::effective_stress;
}
if (boost::iequals(inString, "entry_pressure"))
{
return PropertyType::entry_pressure;
}
if (boost::iequals(inString, "evaporation_enthalpy"))
{
return PropertyType::evaporation_enthalpy;
}
if (boost::iequals(inString, "fredlund_parameters"))
{
return PropertyType::fredlund_parameters;
}
if (boost::iequals(inString, "heat_capacity"))
{
return PropertyType::heat_capacity;
}
if (boost::iequals(inString, "latent_heat"))
{
return PropertyType::latent_heat;
}
if (boost::iequals(inString, "longitudinal_dispersivity"))
{
return PropertyType::longitudinal_dispersivity;
}
if (boost::iequals(inString, "molality"))
{
return PropertyType::molality;
}
if (boost::iequals(inString, "molar_mass"))
{
return PropertyType::molar_mass;
}
if (boost::iequals(inString, "molar_volume"))
{
return PropertyType::molar_volume;
}
if (boost::iequals(inString, "mole_fraction"))
{
return PropertyType::mole_fraction;
}
if (boost::iequals(inString, "molecular_diffusion"))
{
return PropertyType::molecular_diffusion;
}
if (boost::iequals(inString, "name"))
{
return PropertyType::name;
}
if (boost::iequals(inString, "permeability"))
{
return PropertyType::permeability;
}
if (boost::iequals(inString, "pore_diffusion"))
{
return PropertyType::pore_diffusion;
}
if (boost::iequals(inString, "porosity"))
{
return PropertyType::porosity;
}
if (boost::iequals(inString, "phase_velocity"))
{
return PropertyType::phase_velocity;
}
if (boost::iequals(inString, "reference_density"))
{
return PropertyType::reference_density;
}
if (boost::iequals(inString, "reference_temperature"))
{
return PropertyType::reference_temperature;
}
if (boost::iequals(inString, "reference_pressure"))
{
return PropertyType::reference_pressure;
}
if (boost::iequals(inString, "relative_permeability"))
{
return PropertyType::relative_permeability;
}
if (boost::iequals(inString, "relative_permeability_nonwetting_phase"))
{
return PropertyType::relative_permeability_nonwetting_phase;
}
if (boost::iequals(inString, "residual_gas_saturation"))
{
return PropertyType::residual_gas_saturation;
}
if (boost::iequals(inString, "residual_liquid_saturation"))
{
return PropertyType::residual_liquid_saturation;
}
if (boost::iequals(inString, "retardation_factor"))
{
return PropertyType::retardation_factor;
}
if (boost::iequals(inString, "saturation"))
{
return PropertyType::saturation;
}
if (boost::iequals(inString, "saturation_micro"))
{
return PropertyType::saturation_micro;
}
if (boost::iequals(inString, "specific_heat_capacity"))
{
return PropertyType::specific_heat_capacity;
}
if (boost::iequals(inString, "specific_latent_heat"))
{
return PropertyType::specific_latent_heat;
}
if (boost::iequals(inString, "storage"))
{
return PropertyType::storage;
}
if (boost::iequals(inString, "swelling_stress_rate"))
{
return PropertyType::swelling_stress_rate;
}
if (boost::iequals(inString, "thermal_conductivity"))
{
return PropertyType::thermal_conductivity;
}
if (boost::iequals(inString, "thermal_expansivity"))
{
return PropertyType::thermal_expansivity;
}
if (boost::iequals(inString, "thermal_longitudinal_dispersivity"))
{
return PropertyType::thermal_longitudinal_dispersivity;
}
if (boost::iequals(inString, "thermal_osmosis_coefficient"))
{
return PropertyType::thermal_osmosis_coefficient;
}
if (boost::iequals(inString, "thermal_transversal_dispersivity"))
{
return PropertyType::thermal_transversal_dispersivity;
}
if (boost::iequals(inString, "transport_porosity"))
{
return PropertyType::transport_porosity;
}
if (boost::iequals(inString, "transversal_dispersivity"))
{
return PropertyType::transversal_dispersivity;
}
if (boost::iequals(inString, "vapour_pressure"))
{
return PropertyType::vapour_pressure;
}
if (boost::iequals(inString, "vapour_density"))
{
return PropertyType::vapour_density;
}
if (boost::iequals(inString, "vapour_diffusion"))
{
return PropertyType::vapour_diffusion;
}
if (boost::iequals(inString, "viscosity"))
{
return PropertyType::viscosity;
}
if (boost::iequals(inString, "volume_fraction"))
{
return PropertyType::volume_fraction;
}
OGS_FATAL(
"The property name '{:s}' does not correspond to any known property",
inString);
return PropertyType::number_of_properties; // to avoid the 'no return'
// warning
}
static const std::array<std::string, PropertyType::number_of_properties>
property_enum_to_string{{"acentric_factor",
"binary_interaction_coefficient",
......@@ -417,6 +165,24 @@ static const std::array<std::string, PropertyType::number_of_properties>
"viscosity",
"volume_fraction"}};
/// This function converts a string (e.g. a string from the configuration-tree)
/// into one of the entries of the PropertyType enumerator.
inline PropertyType convertStringToProperty(std::string const& string)
{
for (int i = 0; i < static_cast<int>(PropertyType::number_of_properties);
++i)
{
if (boost::iequals(string, property_enum_to_string[i]))
{
return static_cast<PropertyType>(i);
}
}
OGS_FATAL(
"The property name '{:s}' does not correspond to any known property",
string);
}
/// This data type is based on a std::array. It can hold pointers to objects of
/// class Property or its inheritors. The size of this array is determined by
/// the number of entries of the PropertyType enumerator.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment