geolib.models.dsettlement.dsettlement_model

Classes

DSettlementModel(**data)

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:
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