geolib.models.dsettlement.dsettlement_model¶
Classes
|
D-Settlement is a dedicated tool for predicting soil settlements by external loading. |
- class geolib.models.dsettlement.dsettlement_model.DSettlementModel(**data)¶
D-Settlement is a dedicated tool for predicting soil settlements by external loading.
This model can read, modify and create *.sli files, read *.sld and *.err files.
- Parameters:
data (
Any
)
- add_boundary(points, use_probabilistic_defaults=True, stdv=0, distribution_boundaries=DistributionType.Undefined)¶
Add boundary to model.
- Parameters:
points (
List
[Point
])- Return type:
int
- add_head_line(points, is_phreatic=False)¶
Add head line to model.
- Parameters:
points (
List
[Point
])- Return type:
int
- add_layer(boundary_top, boundary_bottom, material_name, head_line_top, head_line_bottom, overwrite=False)¶
Create layer based on boundary ids.
Todo
Determine how a 1D geometry would fit in here.
- Parameters:
boundary_top (
int
)boundary_bottom (
int
)material_name (
str
)head_line_top (
int
)head_line_bottom (
int
)overwrite (
bool
)
- Return type:
int
- add_non_uniform_load(name, points, time_start, gamma_dry, gamma_wet, time_end=None)¶
Create non uniform load.
Sequence of loading is based on time_start.
- Parameters:
name (
str
)points (
List
[Point
])time_start (
timedelta
)gamma_dry (
float
)gamma_wet (
float
)time_end (
Optional
[timedelta
])
- add_other_load(name, time, point, other_load)¶
- Parameters:
name (
str
)time (
timedelta
)point (
Point
)other_load (
Union
[TrapeziformLoad
,RectangularLoad
,CircularLoad
,TankLoad
,UniformLoad
])
- Return type:
None
- add_soil(soil_input)¶
Soil is converted in the internal structure and added in soil_collection.
- Parameters:
soil_input (
Soil
)- Return type:
None
- add_water_load(name, time, phreatic_line_id)¶
Create water load for a time in days, based on a phreatic line.
Edit the head lines for each layer with create layer.
- Parameters:
name (
str
)time (
timedelta
)phreatic_line_id (
int
)
- property boundaries¶
- property console_flags: List[str]¶
- property curves¶
- property custom_console_path: Path¶
-
datastructure:
Union
[DSettlementStructure
,DSettlementOutputStructure
]¶ This is the base class for all models in GEOLib.
Note that datastructure is a SerializeAsAny type, which means that the inheriting class is serialized according to its own definition (duck-typing). This is needed since Pydantic v2 as the default behavior has changed: https://docs.pydantic.dev/latest/concepts/serialization/#subclass-instances-for-fields-of-basemodel-dataclasses-typeddict
- property default_console_path: Path¶
- property distribution_boundaries¶
- property fit_calculation¶
- property fit_options¶
- property headlines¶
- property input¶
Access internal dict-like datastructure of the input.
- property layers¶
- 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]] = {'datastructure': FieldInfo(annotation=Union[DSettlementStructure, DSettlementOutputStructure], required=False, default=DSettlementStructure(input_data=DSettlementInputStructure(version=Version(soil=1011, geometry=1002, d__settlement=1011), soil_collection=SoilCollection(soil=[]), geometry_data=GeometryData(points=Points(points=[]), curves=Curves(curves=[]), boundaries=Boundaries(boundaries=[]), use_probabilistic_defaults_boundaries=UseProbabilisticDefaultsBoundaries(useprobabilisticdefaultsboundaries=[]), stdv_boundaries=StdvBoundaries(stdvboundaries=[]), distribution_boundaries=DistributionBoundaries(distributionboundaries=[]), piezo_lines=PiezoLines(piezolines=[]), phreatic_line=PhreaticLine(phreatic_line=0), layers=Layers(layers=[])), geometry_1d_data=None, run_identification='\n\n', model=Model(dimension=<Dimension.TWO_D: 1>, consolidation_model=<ConsolidationModel.DARCY: 0>, soil_model=<SoilModel.NEN_KOPPEJAN: 0>, strain_type=<StrainType.LINEAR: 0>, is_vertical_drains=<Bool.FALSE: 0>, is_fit_for_settlement_plate=<Bool.FALSE: 0>, is_probabilistic=<Bool.FALSE: 0>, is_horizontal_displacements=<Bool.FALSE: 0>, is_secondary_swelling=<Bool.FALSE: 0>), verticals=Verticals(locations=[]), water=9.81, non__uniform_loads=NonUniformLoads(loads={}), water_loads=WaterLoads(waterloads=[]), other_loads=OtherLoads(loads={}), calculation_options=CalculationOptions(precon_pressure_within_layer=<PreconPressureWithinLayer.CONSTANT_NO_CORRECTION: 0>, is_imaginary_surface=<Bool.FALSE: 0>, imaginary_surface_layer=None, is_submerging=<Bool.FALSE: 0>, use_end_time_for_fit=<Bool.FALSE: 0>, is_maintain_profile=<Bool.FALSE: 0>, maintain_profile_material_name='Superelevation', maintain_profile_time=0, maintain_profile_gamma_dry=10.0, maintain_profile_gamma_wet=10.0, dispersion_conditions_layer_boundaries_top=<DispersionConditionLayerBoundary.DRAINED: 1>, dispersion_conditions_layer_boundaries_bottom=<DispersionConditionLayerBoundary.DRAINED: 1>, stress_distribution_soil=<StressDistributionSoil.BUISMAN: 0>, stress_distribution_loads=<StressDistributionLoads.SIMULATE: 1>, iteration_stop_criteria_submerging=0.0, iteration_stop_criteria_submerging_layer_height=0.0, maximum_iteration_steps_for_submerging=1, iteration_stop_criteria_desired_profile=0.1, load_column_width_imaginary_surface=1.0, load_column_width_non_uniform_loads=1.0, load_column_width_trapeziform_loads=1.0, end_of_consolidation=100000, number_of_subtime_steps=2, reference_time=1.0, dissipation=<Bool.FALSE: 0>, x_coord_dissipation=0.0, use_fit_factors=<Bool.FALSE: 0>, x_coord_fit=0.0, is_predict_settlements_omitting_additional_load_steps=<Bool.FALSE: 0>), residual_times=ResidualTimes(time_steps=[]), filter_band_width='1 : Number of items\n0.05', vertical_drain=VerticalDrain(drain_type=<DrainType.STRIP: 0>, range_from=0.0, range_to=0.0, bottom_position=0.0, center_to_center=3.0, width=0.1, diameter=0.1, thickness=0.003, grid=<DrainGridType.UNDERDETERMINED: 2>, schedule_type=<DrainSchedule.OFF: 0>, begin_time=0.0, end_time=0.0, under_pressure_for_strips_and_columns=35.0, under_pressure_for_sand_wall=35.0, start_of_drainage=0.0, phreatic_level_in_drain=0.0, water_head_during_dewatering=0.0, tube_pressure_during_dewatering=0.0, time=[], underpressure=[], water_level=[]), probabilistic_data=ProbabilisticData(reliability_x_co__ordinate=0.0, residual_settlement=1.0, maximum_drawings=100, maximum_iterations=15, reliability_type=<InternalProbabilisticCalculationType.FOSMOrDeterministic: 0>, is_reliability_calculation=<Bool.FALSE: 0>), probabilistic_defaults='ProbDefGamDryVar=0.05\nProbDefGamWetVar=0.05\nProbDefPOPVar=0.25\nProbDefOCRVar=0.25\nProbDefPcVar=0.25\nProbDefPermeabilityVerVar=2.50\nProbDefRatioHorVerPermeabilityCvVar=0.25\nProbDefCvVar=0.50\nProbDefCpVar=0.30\nProbDefCp1Var=0.30\nProbDefCsVar=0.30\nProbDefCs1Var=0.30\nProbDefApVar=0.30\nProbDefASecVar=0.30\nProbDefRRCrVar=0.25\nProbDefCRCcVar=0.25\nProbDefCaVar=0.25\nProbDefPriCompIndexVar=0.25\nProbDefSecCompIndexVar=0.25\nProbDefSecCompRateVar=0.25\nProbDefCpCor=0.01\nProbDefCsCor=0.01\nProbDefCs1Cor=0.01\nProbDefApCor=0.01\nProbDefASecCor=0.01\nProbDefRRCrCor=0.01\nProbDefCaCor=0.01\nProbDefPriCompIndexCor=0.01\nProbDefSecCompRateCor=0.01\nProbDefGamDryDist=2\nProbDefGamWetDist=2\nProbDefPOPDist=2\nProbDefOCRDist=2\nProbDefPcDist=2\nProbDefPermeabilityVerDist=2\nProbDefRatioHorVerPermeabilityCvDist=2\nProbDefCvDist=2\nProbDefCpDist=2\nProbDefCp1Dist=2\nProbDefCsDist=2\nProbDefCs1Dist=2\nProbDefApDist=2\nProbDefASecDist=2\nProbDefRRCrDist=2\nProbDefCRCcDist=2\nProbDefCaDist=2\nProbDefPriCompIndexDist=2\nProbDefSecCompIndexDist=2\nProbDefSecCompRateDist=2\nProbDefLayerStd=0.10\nProbDefLayerDist=0', fit_options=FitOptions(fit_maximum_number_of_iterations=5, fit_required_iteration_accuracy=0.0001, fit_required_correlation_coefficient=0.99), fit_calculation=FitCalculation(is_fit_calculation=<Bool.FALSE: 0>, fit_vertical_number=0), fit=' 0 = number of items'), output_data=None)), 'filename': FieldInfo(annotation=Union[Path, 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.
- property non_uniform_loads¶
Enables easy access to the non-uniform loads in the internal dict-like datastructure.
- property other_loads¶
Enables easy access to the other loads in the internal dict-like datastructure.
- property output: Results¶
Access internal dict-like datastructure of the output.
Requires a successful execute.
- property parser_provider_type: Type[DSettlementParserProvider]¶
Returns the parser provider type of the current concrete class.
- Raises:
NotImplementedError – If not implemented in the concrete class.
- Returns:
Type[BaseParserProvider] – Concrete parser provider.
- property points¶
Enables easy access to the points in the internal dict-like datastructure. Also enables edit/delete for individual points.
- serialize(filename)¶
Serialize and pre-process :type filename:
Union
[Path
,BinaryIO
] :param filename:
- set_any_calculation_options(**kwargs)¶
Sets calculation options and initializes or removes data when necessary
- Parameters:
precon_pressure_within_layer (PreconPressureWithinLayer) – type of preconsolidation pressure within the layer
is_imaginary_surface (bool) – true if imaginary surface
imaginary_surface_layer (PositivInt) – index of the layer whose top acts as the imaginary surface
is_submerging (bool) – true if submerging
use_end_time_for_fit (bool) – true if end time should be used for fit
is_maintain_profile (bool) – true if profile should be maintained
maintain_profile_material_name (str) – name of the profile
maintain_profile_time (conint(ge=0, le=100000)) – time for maintain profile [days]
maintain_profile_gamma_dry (confloat(ge=-100, le=100)) – unit weight above phreatic line for maintain profile [kN/m3]
maintain_profile_gamma_wet (confloat(ge=-100, le=100)) – unit weight below phreatic line for maintain profile [kN/m3]
dispersion_conditions_layer_boundaries_top (DispersionConditionLayerBoundary) – dispersion condition at the top of the layer
dispersion_conditions_layer_boundaries_top – dispersion condition at the bottom of the layer
stress_distribution_soil (StressDistributionSoil) – type of stress distribution of the soil
stress_distribution_loads (StressDistributionLoads) – type of stress distribution loads
iteration_stop_criteria_submerging (confloat(ge=0.0, le=1.0)) – submerging iteration stop criteria
iteration_stop_criteria_submerging_layer_height (confloat(ge=0, le=99.999)) – minimum settlement for submerging iteration stop criteria [m]
maximum_iteration_steps_for_submerging (conint(ge=1, le=100)) – maximum iteraion steps for submerging
iteration_stop_criteria_desired_profile (confloat(ge=0, le=1)) – iteration stop criteria for desired profile
load_column_width_imaginary_surface (confloat(ge=0.05, le=10000)) – load column width of the imaginary surface [m]
load_column_width_non_uniform_loads (confloat(ge=0.05, le=10000)) – load column width of non-uniform loads [m]
load_column_width_trapeziform_loads (confloat(ge=0.05, le=10000)) – load column width of trapeziform loads [m]
end_of_consolidation (conint(ge=1, le=100000)) – end of settlement calculation [days]
number_of_subtime_steps (conint(ge=1, le=100)) – number of subtime steps [-]
reference_time (confloat(ge=0.001, le=1000000)) – reference time [day]
dissipation (bool) – true if dissipation calculation should be added
x_coord_dissipation (float) – x-coordinate of the dissipation vertical [m]
use_fit_factors (bool) – true if fit parameters should be used
x_coord_fit (float) – x-coordinate of the fit [m]
is_predict_settlements_omitting_additional_load_steps (bool) – true if output of settlements by partial loading
- Returns:
calculation options
- set_calculation_times(time_steps)¶
(Re)set calculation time(s).
Sets a list of calculation times, sorted from low to high with a minimum of 0.
- Parameters:
time_steps (
List
[timedelta
]) – List of time steps, type: float >= 0
Returns:
- set_model(constitutive_model, consolidation_model, is_two_dimensional, strain_type, is_vertical_drain, is_fit_for_settlement_plate, is_probabilistic, is_horizontal_displacements, is_secondary_swelling)¶
Sets the D-settlement Model. Initializes CalculationOptions and Model if the type is str
- Parameters:
constitutive_model (SoilModel) – enum
consolidation_model (ConsolidationModel) – enum
is_two_dimensional (bool) – true if geometry is 2 dimensional
strain_type (StrainType) – enum
is_vertical_drain (bool) – true if vertical drain is present
is_fit_for_settlement_plate (bool) – true if fit for settlement plate
is_probabilistic (bool) – true if probabilistic calculation should be made
is_horizontal_displacements (bool) – true if horizontal displacements should be calculated
is_secondary_swelling (bool) – true if secondary swelling is present
- Returns:
Model
- set_probabilistic_data(point_of_vertical, residual_settlement, maximum_number_of_samples, maximum_iterations, reliability_type, is_reliability_calculation)¶
Set calculation options for probabilistic calculation.
- Parameters:
point_of_vertical (
Point
) – Select point that correspond to a defined vertical for the reliability analysis.residual_settlement (
float
) – For FORM and Monte Carlo methods, the allowed residual settlement can be set.maximum_number_of_samples (
int
) – The number of samples that the Monte Carlo method will use.maximum_iterations (
int
) – The maximum number of iterations for the FORM method.reliability_type (
ProbabilisticCalculationType
) –Select one of the following methods
SettlementsDeterministic: a regular deterministic settlement analysis along all verticals, based on fixed mean values of the parameters.
- BandWidthOfSettlementsFOSM: Quick and approximate determination of the bandwidth and the influencing factors (parameter
sensitivity) for the total settlements along one vertical. The determination is executed at user defined time points and at the time points of measurements. Calculation time will increase with an increasing number of stochastic parameters.
- ProbabilityOfFailureFORM: Iterative determination of the reliability index, bandwidth and influencing factors for the residual
settlement along one vertical. A separate FORM analysis is performed for each residual settlement that starts from each different user defined time point. Calculation time will increase with an increasing number of stochastic parameters, user defined time points and iterations. Furthermore, the FORM method is only conditionally stable.
- BandWidthAndProbabilityOfFailureMonteCarlo: Determination of the bandwidth for the total settlements along one vertical, and also of the reliability index
and bandwidth for the residual settlements, by repetitive execution of settlement analyses (sampling). Each sample is executed with random parameter values, derived from the stochastic distributions. Calculation time will increase with the number of samples. Accurate Monte Carlo analysis requires a large number of samples, if many stochastic parameters are involved.
is_reliability_calculation (
bool
) – set to True if a probabilistic calculation should be performed.
- set_vertical_drain(verticaldrain)¶
- Parameters:
verticaldrain (
VerticalDrain
)
- set_verticals(locations)¶
Set calculation verticals in geometry. X and Y coordinates should be defined for each vertical.
Todo
Add check that checks that the verticals are not outside of the geometry boundaries. [GEOLIB-12]
- Parameters:
locations (
List
[Point
])- Return type:
None
- property stdv_boundaries¶
- property use_probabilistic_defaults_boundaries¶