Soils

Soil Libraries

It is possible to import various input files which will automatically generate Soil objects from them. Several pre-existing soil materials as used in D-Foundations based on the NEN 9997-1 norm are defined here as well. The Belgian Annex Soils will be added later.

Using Soil Library:

>>> import geolib as gl
>>> dir(gl.soils)
<Soil A with code a>, <Soil B with code b>

CPT interpretation

This package won’t interpret CPTs. This will follow in the GEOLib+ package. There is a geolib.soils.layers.CPT class however, to load from D-Foundations and DSheetPiling input files.

The Soil Class

class geolib.soils.soil.BjerrumParameters(**data)

Bjerrum parameters class

input_type_is_comp_ratio: [bool] is true when compression input mode is “compression ratio”, false when compression

input mode is “Compression index”

If input_type_is_comp_ratio is true, the following parameters are used as input:

reloading_swelling_RR compression_ratio_CR coef_secondary_compression_Ca

If input_type_is_comp_ratio is false, the following parameters are used as input:

reloading_swelling_index_Cr compression_index_Cc coef_secondary_compression_Ca

Parameters:

data (Any)

coef_secondary_compression_Ca: Union[float, StochasticParameter, None]
compression_index_Cc: Union[float, StochasticParameter, None]
compression_ratio_CR: Union[float, StochasticParameter, None]
correlation_reload_primary_compression_ratio: Optional[float]
input_type_is_comp_ratio: Optional[bool]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'coef_secondary_compression_Ca': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'compression_index_Cc': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'compression_ratio_CR': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'correlation_reload_primary_compression_ratio': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'input_type_is_comp_ratio': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'primary_compression_index': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'primary_compression_ratio': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'reloading_index': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'reloading_ratio': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'reloading_swelling_RR': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'reloading_swelling_index_Cr': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

primary_compression_index: Union[float, StochasticParameter, None]
primary_compression_ratio: Union[float, StochasticParameter, None]
reloading_index: Union[float, StochasticParameter, None]
reloading_ratio: Union[float, StochasticParameter, None]
reloading_swelling_RR: Union[float, StochasticParameter, None]
reloading_swelling_index_Cr: Union[float, StochasticParameter, None]
class geolib.soils.soil.ConeResistance(**data)

Cone resistance class

Parameters:

data (Any)

max_cone_resistance: Optional[float]
max_cone_resistance_type: Optional[Enum]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'max_cone_resistance': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'max_cone_resistance_type': FieldInfo(annotation=Union[Enum, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.soils.soil.DistributionType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Deterministic = 4
LogNormal = 3
Normal = 2
Undefined = 0
class geolib.soils.soil.EarthPressureCoefficients(**data)
Parameters:

data (Any)

active: Optional[float]
earth_pressure_coefficients_type: Optional[EarthPressureCoefficientsType]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'active': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'earth_pressure_coefficients_type': FieldInfo(annotation=Union[EarthPressureCoefficientsType, NoneType], required=False, default=<EarthPressureCoefficientsType.BRINCHHANSEN: 1>), 'neutral': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'passive': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

neutral: Optional[float]
passive: Optional[float]
class geolib.soils.soil.EarthPressureCoefficientsType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
BRINCHHANSEN = 1
MANUAL = 0
class geolib.soils.soil.GrainType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
COARSE = 1
FINE = 0
class geolib.soils.soil.HorizontalBehaviour(**data)

Horizontal behaviour class

Parameters:

data (Any)

horizontal_behavior_type: Optional[HorizontalBehaviourType]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'horizontal_behavior_type': FieldInfo(annotation=Union[HorizontalBehaviourType, NoneType], required=False, default=None), 'soil_default_elasticity': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'soil_elasticity': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

soil_default_elasticity: Optional[bool]
soil_elasticity: Optional[float]
class geolib.soils.soil.HorizontalBehaviourType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Elastic = 2
Foundation = 3
Stiff = 1
class geolib.soils.soil.IsotacheParameters(**data)
Parameters:

data (Any)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'precon_isotache_type': FieldInfo(annotation=Union[StateType, NoneType], required=False, default=None), 'primary_compression_constant_b': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'reloading_swelling_constant_a': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'secondary_compression_constant_c': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

precon_isotache_type: Optional[StateType]
primary_compression_constant_b: Union[float, StochasticParameter, None]
reloading_swelling_constant_a: Union[float, StochasticParameter, None]
secondary_compression_constant_c: Union[float, StochasticParameter, None]
class geolib.soils.soil.KoppejanParameters(**data)
Parameters:

data (Any)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'precon_koppejan_type': FieldInfo(annotation=Union[StateType, NoneType], required=False, default=None), 'preconsolidation_pressure': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'primary_Ap': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'primary_Asec': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'primary_Cp': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'primary_Cp_point': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'secular_Cs': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'secular_Cs_point': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'soil_ap_as_approximation_by_Cp_Cs': FieldInfo(annotation=Union[bool, NoneType], required=False, default=False)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

precon_koppejan_type: Optional[StateType]
preconsolidation_pressure: Union[float, StochasticParameter, None]
primary_Ap: Union[float, StochasticParameter, None]
primary_Asec: Union[float, StochasticParameter, None]
primary_Cp: Union[float, StochasticParameter, None]
primary_Cp_point: Union[float, StochasticParameter, None]
secular_Cs: Union[float, StochasticParameter, None]
secular_Cs_point: Union[float, StochasticParameter, None]
soil_ap_as_approximation_by_Cp_Cs: Optional[bool]
class geolib.soils.soil.LambdaType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
KOTTER = 2
MANUAL = 0
MULLERBRESLAU = 1
class geolib.soils.soil.ModulusSubgradeReaction(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
MANUAL = 0
MENARD = 1
class geolib.soils.soil.MohrCoulombParameters(**data)

Mohr Coulomb parameters class

Parameters:

data (Any)

cohesion: Union[float, StochasticParameter, None]
cohesion_and_friction_angle_correlated: Optional[bool]
dilatancy_angle: Union[float, StochasticParameter, None]
friction_angle: Union[float, StochasticParameter, None]
friction_angle_interface: Union[float, StochasticParameter, None]
is_delta_angle_automatically_calculated: Optional[bool]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'cohesion': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'cohesion_and_friction_angle_correlated': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'dilatancy_angle': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'friction_angle': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'friction_angle_interface': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'is_delta_angle_automatically_calculated': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.soils.soil.ShearStrengthModelTypePhreaticLevel(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Shear Strength Model Type. These types represent the shear strength model that can be found in the UI of the D-Stability program.

MOHR_COULOMB = 'Mohr_Coulomb'
NONE = 'None'
SHANSEP = 'SHANSEP'
SUTABLE = 'SuTable'
transform_shear_strength_model_type_to_internal()
class geolib.soils.soil.Soil(**data)

Soil Material.

Parameters:

data (Any)

bjerrum_parameters: Optional[BjerrumParameters]
code: Optional[str]
color: Color
cone_resistance: Optional[ConeResistance]
earth_pressure_coefficients: Optional[EarthPressureCoefficients]
horizontal_behaviour: Optional[HorizontalBehaviour]
id: Optional[str]
is_drained: Optional[bool]
is_probabilistic: Optional[bool]
isotache_parameters: Optional[IsotacheParameters]
koppejan_parameters: Optional[KoppejanParameters]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'bjerrum_parameters': FieldInfo(annotation=Union[BjerrumParameters, NoneType], required=False, default=BjerrumParameters(input_type_is_comp_ratio=None, reloading_ratio=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), primary_compression_ratio=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), correlation_reload_primary_compression_ratio=None, reloading_index=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), primary_compression_index=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), coef_secondary_compression_Ca=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), reloading_swelling_RR=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), compression_ratio_CR=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), reloading_swelling_index_Cr=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), compression_index_Cc=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))), 'code': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'color': FieldInfo(annotation=Color, required=False, default=Color('grey', rgb=(128, 128, 128))), 'cone_resistance': FieldInfo(annotation=Union[ConeResistance, NoneType], required=False, default=ConeResistance(max_cone_resistance_type=None, max_cone_resistance=None)), 'earth_pressure_coefficients': FieldInfo(annotation=Union[EarthPressureCoefficients, NoneType], required=False, default=EarthPressureCoefficients(earth_pressure_coefficients_type=<EarthPressureCoefficientsType.BRINCHHANSEN: 1>, active=None, neutral=None, passive=None)), 'horizontal_behaviour': FieldInfo(annotation=Union[HorizontalBehaviour, NoneType], required=False, default=HorizontalBehaviour(horizontal_behavior_type=None, soil_elasticity=None, soil_default_elasticity=None)), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'is_drained': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'is_probabilistic': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'isotache_parameters': FieldInfo(annotation=Union[IsotacheParameters, NoneType], required=False, default=IsotacheParameters(precon_isotache_type=None, reloading_swelling_constant_a=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), primary_compression_constant_b=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), secondary_compression_constant_c=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))), 'koppejan_parameters': FieldInfo(annotation=Union[KoppejanParameters, NoneType], required=False, default=KoppejanParameters(precon_koppejan_type=None, preconsolidation_pressure=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), soil_ap_as_approximation_by_Cp_Cs=False, primary_Cp=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), primary_Cp_point=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), secular_Cs=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), secular_Cs_point=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), primary_Ap=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), primary_Asec=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))), 'mohr_coulomb_parameters': FieldInfo(annotation=Union[MohrCoulombParameters, NoneType], required=False, default=MohrCoulombParameters(cohesion=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), dilatancy_angle=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), friction_angle=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), friction_angle_interface=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), is_delta_angle_automatically_calculated=None, cohesion_and_friction_angle_correlated=None)), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'shear_strength_model_above_phreatic_level': FieldInfo(annotation=Union[ShearStrengthModelTypePhreaticLevel, NoneType], required=False, default=None), 'shear_strength_model_below_phreatic_level': FieldInfo(annotation=Union[ShearStrengthModelTypePhreaticLevel, NoneType], required=False, default=None), 'shell_factor': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'soil_classification_parameters': FieldInfo(annotation=Union[SoilClassificationParameters, NoneType], required=False, default=SoilClassificationParameters(initial_void_ratio=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), min_void_ratio=None, max_void_ratio=None, porosity=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), relative_density=None, d_50=None, grain_type=<GrainType.FINE: 0>)), 'soil_state': FieldInfo(annotation=Union[SoilState, NoneType], required=False, default=SoilState(use_equivalent_age=None, equivalent_age=None, state_points=None, state_lines=None, yield_stress_layer=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), ocr_layer=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), pop_layer=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), secondary_swelling_reduced=None, secondary_swelling_factor=None, unloading_stress_ratio=None)), 'soil_stiffness_parameters': FieldInfo(annotation=Union[SoilStiffnessParameters, NoneType], required=False, default=SoilStiffnessParameters(emod_menard=None)), 'soil_type_nl': FieldInfo(annotation=Union[SoilType, NoneType], required=False, default=<SoilType.SAND: 1>), 'soil_type_settlement_by_vibrations': FieldInfo(annotation=Union[SoilType, NoneType], required=False, default=<SoilType.SAND: 1>), 'soil_weight_parameters': FieldInfo(annotation=Union[SoilWeightParameters, NoneType], required=False, default=SoilWeightParameters(saturated_weight=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), unsaturated_weight=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))), 'storage_parameters': FieldInfo(annotation=Union[StorageParameters, NoneType], required=False, default=StorageParameters(vertical_permeability=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), permeability_horizontal_factor=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), horizontal_permeability=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), storage_type=None, permeability_strain_type=StochasticParameter(is_probabilistic=False, mean=1000000000000000.0, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), vertical_consolidation_coefficient=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))), 'subgrade_reaction_parameters': FieldInfo(annotation=Union[SubgradeReactionParameters, NoneType], required=False, default=SubgradeReactionParameters(modulus_subgrade_reaction_type=None, lambda_type=None, tangent_secant_1=None, tangent_secant_2=None, tangent_secant_3=None, k_o_top=None, k_1_top=None, k_2_top=None, k_3_top=None, k_4_top=None, k_o_bottom=None, k_1_bottom=None, k_2_bottom=None, k_3_bottom=None, k_4_bottom=None, k_1_top_side=None, k_2_top_side=None, k_3_top_side=None, k_1_bottom_side=None, k_2_bottom_side=None, k_3_bottom_side=None)), 'undrained_parameters': FieldInfo(annotation=Union[UndrainedParameters, NoneType], required=False, default=UndrainedParameters(shear_strength_ratio=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), shear_strength_ratio_and_shear_strength_exponent_correlated=None, strength_increase_exponent=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None), s_and_m_correlated=None, undrained_shear_strength=None, undrained_shear_strength_top=None, undrained_shear_strength_bottom=None, undrained_shear_strength_bearing_capacity_factor=None, su_table=None, probabilistic_su_table=None, su_table_variation_coefficient=None)), 'use_probabilistic_defaults': FieldInfo(annotation=Union[bool, NoneType], required=False, default=False), 'use_tension': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

mohr_coulomb_parameters: Optional[MohrCoulombParameters]
name: Optional[str]
set_all_stochastic_parameters()

Loop over all fields in soil class, and converts floats to stochastic parameters if necessary

Returns:

static set_stochastic_parameters(input_class)

Converts float to stochastic parameter, where the mean is set as the input float value :type input_class: object :param input_class:

Returns:

shear_strength_model_above_phreatic_level: Optional[ShearStrengthModelTypePhreaticLevel]
shear_strength_model_below_phreatic_level: Optional[ShearStrengthModelTypePhreaticLevel]
shell_factor: Optional[float]
soil_classification_parameters: Optional[SoilClassificationParameters]
soil_state: Optional[SoilState]
soil_stiffness_parameters: Optional[SoilStiffnessParameters]
soil_type_nl: Optional[SoilType]
soil_type_settlement_by_vibrations: Optional[SoilType]
soil_weight_parameters: Optional[SoilWeightParameters]
storage_parameters: Optional[StorageParameters]
subgrade_reaction_parameters: Optional[SubgradeReactionParameters]
classmethod transform_id_to_str(value)
Return type:

str

undrained_parameters: Optional[UndrainedParameters]
use_probabilistic_defaults: Optional[bool]
use_tension: Optional[bool]
class geolib.soils.soil.SoilBaseModel(**data)
Parameters:

data (Any)

classmethod fail_on_infinite(v, _)
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.soils.soil.SoilClassificationParameters(**data)

Soil classification class

Parameters:

data (Any)

d_50: Optional[float]
grain_type: Optional[GrainType]
initial_void_ratio: Union[float, StochasticParameter, None]
max_void_ratio: Optional[float]
min_void_ratio: Optional[float]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'d_50': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'grain_type': FieldInfo(annotation=Union[GrainType, NoneType], required=False, default=<GrainType.FINE: 0>), 'initial_void_ratio': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'max_void_ratio': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'min_void_ratio': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'porosity': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'relative_density': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

porosity: Union[float, StochasticParameter, None]
relative_density: Optional[float]
class geolib.soils.soil.SoilState(**data)
Parameters:

data (Any)

equivalent_age: Optional[float]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'equivalent_age': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'ocr_layer': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'pop_layer': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'secondary_swelling_factor': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'secondary_swelling_reduced': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'state_lines': FieldInfo(annotation=Union[StateLine, NoneType], required=False, default=None), 'state_points': FieldInfo(annotation=Union[StatePoint, NoneType], required=False, default=None), 'unloading_stress_ratio': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'use_equivalent_age': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'yield_stress_layer': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

ocr_layer: Union[float, StochasticParameter, None]
pop_layer: Union[float, StochasticParameter, None]
secondary_swelling_factor: Optional[float]
secondary_swelling_reduced: Optional[bool]
state_lines: Optional[StateLine]
state_points: Optional[StatePoint]
unloading_stress_ratio: Optional[float]
use_equivalent_age: Optional[bool]
yield_stress_layer: Union[float, StochasticParameter, None]
class geolib.soils.soil.SoilStiffnessParameters(**data)
Parameters:

data (Any)

emod_menard: Optional[float]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'emod_menard': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.soils.soil.SoilType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
CLAY = 3
CLAYEYSAND = 7
GRAVEL = 0
LOAM = 2
PEAT = 4
SAND = 1
SANDY_LOAM = 5
TERTCLAY = 6
class geolib.soils.soil.SoilWeightParameters(**data)
Parameters:

data (Any)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'saturated_weight': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'unsaturated_weight': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

saturated_weight: Union[float, StochasticParameter, None]
unsaturated_weight: Union[float, StochasticParameter, None]
class geolib.soils.soil.StateLine(**data)

TODO Decide if we want to keep state in soil class TODO decide if we want cross-dependency to geometry class

Parameters:

data (Any)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'state_line_points': FieldInfo(annotation=Union[List[Point], NoneType], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

state_line_points: Optional[List[Point]]
class geolib.soils.soil.StatePoint(**data)
Parameters:

data (Any)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'state_layer_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'state_point_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'state_point_is_probabilistic': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'state_point_type': FieldInfo(annotation=Union[StateType, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

state_layer_id: Optional[str]
state_point_id: Optional[str]
state_point_is_probabilistic: Optional[bool]
state_point_type: Optional[StateType]
class geolib.soils.soil.StateType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
OCR = 'OCR'
POP = 'POP'
YIELD_STRESS = 'yield_stress'
class geolib.soils.soil.StochasticParameter(**data)

Stochastic parameters class

Parameters:

data (Any)

correlation_coefficient: Optional[float]
distribution_type: Optional[DistributionType]
high_characteristic_value: Optional[float]
high_design_value: Optional[float]
is_probabilistic: bool
low_characteristic_value: Optional[float]
low_design_value: Optional[float]
mean: Optional[float]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'correlation_coefficient': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'distribution_type': FieldInfo(annotation=Union[DistributionType, NoneType], required=False, default=<DistributionType.Normal: 2>), 'high_characteristic_value': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'high_design_value': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'is_probabilistic': FieldInfo(annotation=bool, required=False, default=False), 'low_characteristic_value': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'low_design_value': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'mean': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'standard_deviation': FieldInfo(annotation=Union[float, NoneType], required=False, default=0)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

standard_deviation: Optional[float]
class geolib.soils.soil.StorageParameters(**data)

In this case vertical_permeability has a unit of [m/day]. In GUI of the D-Settlement this value is displayed as [m/s].

Parameters:

data (Any)

horizontal_permeability: Union[float, StochasticParameter, None]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'horizontal_permeability': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'permeability_horizontal_factor': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'permeability_strain_type': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=1000000000000000.0, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'storage_type': FieldInfo(annotation=Union[StorageTypes, NoneType], required=False, default=None), 'vertical_consolidation_coefficient': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'vertical_permeability': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None))}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

permeability_horizontal_factor: Union[float, StochasticParameter, None]
permeability_strain_type: Union[float, StochasticParameter, None]
storage_type: Optional[StorageTypes]
vertical_consolidation_coefficient: Union[float, StochasticParameter, None]
vertical_permeability: Union[float, StochasticParameter, None]
class geolib.soils.soil.StorageTypes(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
constant_permeability = 1
strain_dependent_permeability = 2
vertical_consolidation_coefficient = 0
class geolib.soils.soil.SuTablePoint(**data)
Parameters:

data (Any)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'stress': FieldInfo(annotation=float, required=False, default=None), 'su': FieldInfo(annotation=float, required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

stress: float
su: float
class geolib.soils.soil.SubgradeReactionParameters(**data)
Parameters:

data (Any)

k_1_bottom: Optional[float]
k_1_bottom_side: Optional[float]
k_1_top: Optional[float]
k_1_top_side: Optional[float]
k_2_bottom: Optional[float]
k_2_bottom_side: Optional[float]
k_2_top: Optional[float]
k_2_top_side: Optional[float]
k_3_bottom: Optional[float]
k_3_bottom_side: Optional[float]
k_3_top: Optional[float]
k_3_top_side: Optional[float]
k_4_bottom: Optional[float]
k_4_top: Optional[float]
k_o_bottom: Optional[float]
k_o_top: Optional[float]
lambda_type: Optional[LambdaType]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'k_1_bottom': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_1_bottom_side': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_1_top': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_1_top_side': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_2_bottom': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_2_bottom_side': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_2_top': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_2_top_side': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_3_bottom': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_3_bottom_side': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_3_top': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_3_top_side': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_4_bottom': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_4_top': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_o_bottom': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'k_o_top': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'lambda_type': FieldInfo(annotation=Union[LambdaType, NoneType], required=False, default=None), 'modulus_subgrade_reaction_type': FieldInfo(annotation=Union[ModulusSubgradeReaction, NoneType], required=False, default=None), 'tangent_secant_1': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'tangent_secant_2': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'tangent_secant_3': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

modulus_subgrade_reaction_type: Optional[ModulusSubgradeReaction]
tangent_secant_1: Optional[float]
tangent_secant_2: Optional[float]
tangent_secant_3: Optional[float]
class geolib.soils.soil.UndrainedParameters(**data)

Undrained shear strength parameters class. This class includes the SU Table and SHANSEP model variables included in D-Stability.

Parameters:

data (Any)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'probabilistic_su_table': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 's_and_m_correlated': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'shear_strength_ratio': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'shear_strength_ratio_and_shear_strength_exponent_correlated': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'strength_increase_exponent': FieldInfo(annotation=Union[float, StochasticParameter, NoneType], required=False, default=StochasticParameter(is_probabilistic=False, mean=None, standard_deviation=0.0, distribution_type=<DistributionType.Normal: 2>, correlation_coefficient=None, low_characteristic_value=None, high_characteristic_value=None, low_design_value=None, high_design_value=None)), 'su_table': FieldInfo(annotation=Union[List[SuTablePoint], NoneType], required=False, default=None), 'su_table_variation_coefficient': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'undrained_shear_strength': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'undrained_shear_strength_bearing_capacity_factor': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'undrained_shear_strength_bottom': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'undrained_shear_strength_top': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

probabilistic_su_table: Optional[bool]
s_and_m_correlated: Optional[bool]
shear_strength_ratio: Union[float, StochasticParameter, None]
shear_strength_ratio_and_shear_strength_exponent_correlated: Optional[bool]
strength_increase_exponent: Union[float, StochasticParameter, None]
su_table: Optional[List[SuTablePoint]]
su_table_variation_coefficient: Optional[float]
to_su_table_points()
undrained_shear_strength: Optional[float]
undrained_shear_strength_bearing_capacity_factor: Optional[float]
undrained_shear_strength_bottom: Optional[float]
undrained_shear_strength_top: Optional[float]
class geolib.soils.soil_utils.Color(value)

Color type from Pydantic

see https://pydantic-docs.helpmanual.io/usage/types/#color-type

Example

For construction:

Color("ff00ff")  # hex value
Color((255, 255, 255))  # rgb tuple
Color("purple")  # named
Parameters:

value (Union[Tuple[int, int, int], Tuple[int, int, int, float], str, Color])

classmethod from_internal(c)

Convert a D-Serie color integer into a Color.

Parameters:

c (int)

class geolib.models.dstability.internal.ShearStrengthModelTypePhreaticLevelInternal(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Shear Strength Model Type. These types represent the types that are internally defined in the json files of D-Stability.

MOHR_COULOMB_ADVANCED = 'MohrCoulombAdvanced'
MOHR_COULOMB_CLASSIC = 'MohrCoulombClassic'
NONE = 'None'
SU = 'Su'
SUTABLE = 'SuTable'
to_global_shear_strength_model()