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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- 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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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
]¶
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- 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
]¶
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_stiffness_parameters:
Optional
[SoilStiffnessParameters
]¶
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class geolib.soils.soil.SoilClassificationParameters(**data)¶
Soil classification class
- Parameters:
data (
Any
)
-
d_50:
Optional
[float
]¶
-
initial_void_ratio:
Union
[float
,StochasticParameter
,None
]¶
-
max_void_ratio:
Optional
[float
]¶
-
min_void_ratio:
Optional
[float
]¶
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
porosity:
Union
[float
,StochasticParameter
,None
]¶
-
relative_density:
Optional
[float
]¶
- class geolib.soils.soil.SoilState(**data)¶
- Parameters:
data (
Any
)
-
equivalent_age:
Optional
[float
]¶
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
ocr_layer:
Union
[float
,StochasticParameter
,None
]¶
-
pop_layer:
Union
[float
,StochasticParameter
,None
]¶
-
secondary_swelling_factor:
Optional
[float
]¶
-
secondary_swelling_reduced:
Optional
[bool
]¶
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- 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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class geolib.soils.soil.StatePoint(**data)¶
- Parameters:
data (
Any
)
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
state_layer_id:
Optional
[str
]¶
-
state_point_id:
Optional
[str
]¶
-
state_point_is_probabilistic:
Optional
[bool
]¶
- 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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
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_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
probabilistic_su_table:
Optional
[bool
]¶
-
shear_strength_ratio:
Union
[float
,StochasticParameter
,None
]¶
-
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()¶