Source code for ogstools.property_types

# SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
# SPDX-License-Identifier: BSD-3-Clause

"""Shared registry of OGS material property type specifications."""

from __future__ import annotations

from dataclasses import dataclass


[docs] @dataclass(frozen=True) class PropertyTypeSpec: """Describe the expected parameters and metadata of one property type.""" parameters: tuple[str, ...] metadata_keys: tuple[str, ...] = ("unit", "source")
PROPERTY_TYPES: dict[str, PropertyTypeSpec] = { "AverageMolarMass": PropertyTypeSpec(parameters=()), "BishopsSaturationCutoff": PropertyTypeSpec(parameters=("cutoff_value",)), "BishopsPowerLaw": PropertyTypeSpec(parameters=("exponent",)), "CapillaryPressureRegularizedVanGenuchten": PropertyTypeSpec( parameters=( "exponent", "p_b", "residual_gas_saturation", "residual_liquid_saturation", ) ), "CapillaryPressureVanGenuchten": PropertyTypeSpec( parameters=( "exponent", "maximum_capillary_pressure", "p_b", "residual_gas_saturation", "residual_liquid_saturation", ) ), "ClausiusClapeyron": PropertyTypeSpec( parameters=( "critical_pressure", "critical_temperature", "reference_pressure", "reference_temperature", "triple_pressure", "triple_temperature", ) ), "Constant": PropertyTypeSpec(parameters=("value",)), "Curve": PropertyTypeSpec(parameters=("curve", "independent_variable")), "DupuitPermeability": PropertyTypeSpec(parameters=("parameter_name",)), "EffectiveThermalConductivityPorosityMixing": PropertyTypeSpec( parameters=() ), "EmbeddedFracturePermeability": PropertyTypeSpec( parameters=( "intrinsic_permeability", "initial_aperture", "mean_frac_distance", "threshold_strain", "fracture_normal", "fracture_rotation_xy", "fracture_rotation_yz", ) ), "Exponential": PropertyTypeSpec(parameters=("offset", "reference_value")), "Function": PropertyTypeSpec(parameters=("value",)), "GasPressureDependentPermeability": PropertyTypeSpec( parameters=( "initial_permeability", "a1", "a2", "pressure_threshold", "minimum_permeability", "maximum_permeability", ) ), "IdealGasLaw": PropertyTypeSpec(parameters=()), "IdealGasLawBinaryMixture": PropertyTypeSpec(parameters=()), "KozenyCarmanModel": PropertyTypeSpec( parameters=( "initial_permeability", "initial_porosity", ) ), "Linear": PropertyTypeSpec(parameters=("reference_value",)), "LinearSaturationSwellingStress": PropertyTypeSpec( parameters=( "coefficient", "reference_saturation", ) ), "LinearWaterVapourLatentHeat": PropertyTypeSpec(parameters=()), "OrthotropicEmbeddedFracturePermeability": PropertyTypeSpec( parameters=( "intrinsic_permeability", "mean_frac_distances", "threshold_strains", "fracture_normals", "fracture_rotation_xy", "fracture_rotation_yz", "jacobian_factor", ) ), "Parameter": PropertyTypeSpec(parameters=("parameter_name",)), "PermeabilityMohrCoulombFailureIndexModel": PropertyTypeSpec( parameters=( "cohesion", "fitting_factor", "friction_angle", "initial_permeability", "maximum_permeability", "reference_permeability", "tensile_strength_parameter", ) ), "PorosityFromMassBalance": PropertyTypeSpec( parameters=( "initial_porosity", "maximal_porosity", "minimal_porosity", ) ), "RelPermBrooksCorey": PropertyTypeSpec( parameters=( "lambda", "min_relative_permeability", "residual_gas_saturation", "residual_liquid_saturation", ) ), "RelPermBrooksCoreyNonwettingPhase": PropertyTypeSpec( parameters=( "lambda", "min_relative_permeability", "residual_gas_saturation", "residual_liquid_saturation", ) ), "RelPermLiakopoulos": PropertyTypeSpec(parameters=()), "RelativePermeabilityNonWettingVanGenuchten": PropertyTypeSpec( parameters=( "exponent", "minimum_relative_permeability", "residual_gas_saturation", "residual_liquid_saturation", ) ), "RelativePermeabilityUdell": PropertyTypeSpec( parameters=( "min_relative_permeability", "residual_gas_saturation", "residual_liquid_saturation", ) ), "RelativePermeabilityUdellNonwettingPhase": PropertyTypeSpec( parameters=( "min_relative_permeability", "residual_gas_saturation", "residual_liquid_saturation", ) ), "RelativePermeabilityVanGenuchten": PropertyTypeSpec( parameters=( "exponent", "minimum_relative_permeability_liquid", "residual_gas_saturation", "residual_liquid_saturation", ) ), "RelativePermeabilityNonWettingPhaseVanGenuchtenMualem": PropertyTypeSpec( parameters=( "exponent", "min_relative_permeability", "residual_gas_saturation", "residual_liquid_saturation", ) ), "PermeabilityOrthotropicPowerLaw": PropertyTypeSpec( parameters=("exponents", "intrinsic_permeabilities") ), "SaturationBrooksCorey": PropertyTypeSpec( parameters=( "entry_pressure", "lambda", "residual_gas_saturation", "residual_liquid_saturation", ) ), "SaturationDependentSwelling": PropertyTypeSpec( parameters=( "exponents", "lower_saturation_limit", "swelling_pressures", "upper_saturation_limit", ) ), "SaturationDependentThermalConductivity": PropertyTypeSpec( parameters=("dry", "wet") ), "SaturationExponential": PropertyTypeSpec( parameters=( "exponent", "maximum_capillary_pressure", "residual_gas_saturation", "residual_liquid_saturation", ) ), "SaturationLiakopoulos": PropertyTypeSpec(parameters=()), "SaturationVanGenuchten": PropertyTypeSpec( parameters=( "exponent", "p_b", "residual_gas_saturation", "residual_liquid_saturation", ) ), "SaturationWeightedThermalConductivity": PropertyTypeSpec( parameters=( "mean_type", "dry_thermal_conductivity", "wet_thermal_conductivity", ) ), "SoilThermalConductivitySomerton": PropertyTypeSpec( parameters=( "dry_thermal_conductivity", "wet_thermal_conductivity", ) ), "StrainDependentPermeability": PropertyTypeSpec( parameters=( "initial_permeability", "b1", "b2", "b3", "minimum_permeability", "maximum_permeability", ) ), "TemperatureDependentDiffusion": PropertyTypeSpec( parameters=( "activation_energy", "reference_diffusion", "reference_temperature", ) ), "TransportPorosityFromMassBalance": PropertyTypeSpec( parameters=( "initial_porosity", "maximal_porosity", "minimal_porosity", ) ), "VapourDiffusionFEBEX": PropertyTypeSpec(parameters=()), "VapourDiffusionPMQ": PropertyTypeSpec(parameters=()), "VermaPruessModel": PropertyTypeSpec( parameters=( "critical_porosity", "exponent", "initial_permeability", "initial_porosity", ) ), "WaterVapourDensity": PropertyTypeSpec(parameters=()), "WaterDensityIAPWSIF97Region1": PropertyTypeSpec(parameters=()), "WaterVapourLatentHeatWithCriticalTemperature": PropertyTypeSpec( parameters=() ), "WaterViscosityIAPWS": PropertyTypeSpec(parameters=()), }