geolib.soils.layers

Profile and Layer classes which are used by both D-Foundations and DSheetPiling. D-Foundations often requires more parameters, which are unused for DSheetPiling.

Classes

CPT(**data)

Internal Placeholder CPT measurements as used in D-Foundations/D-Sheetpiling.

CPTRule(**data)

Placeholder class for CPT interpretation options.

Profile(**data)

D-Foundations Profile.

ProfileLayer(**data)

Layer in a Profile.

class geolib.soils.layers.CPT(**data)

Internal Placeholder CPT measurements as used in D-Foundations/D-Sheetpiling.

It is here because input files can contain CPTs coupled to a Profile.

Todo

Add Friction and other parameters?

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]] = {'qc': FieldInfo(annotation=List[float], required=True), 'z': FieldInfo(annotation=List[float], 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.

qc: List[float]
z: List[float]
class geolib.soils.layers.CPTRule(**data)

Placeholder class for CPT interpretation options.

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]] = {}

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.layers.Profile(**data)

D-Foundations Profile.

Todo

  • Determine extra fields related to Excavations

Parameters:

data (Any)

bottom_positive_skin_friction: float
cpt: CPT
cpt_rule: CPTRule
expected_ground_level_settlement: float
label: str
layers: List[ProfileLayer]
min_layer_thickness: 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]] = {'bottom_positive_skin_friction': FieldInfo(annotation=float, required=True), 'cpt': FieldInfo(annotation=CPT, required=True), 'cpt_rule': FieldInfo(annotation=CPTRule, required=True), 'expected_ground_level_settlement': FieldInfo(annotation=float, required=True), 'label': FieldInfo(annotation=str, required=True), 'layers': FieldInfo(annotation=List[ProfileLayer], required=True), 'min_layer_thickness': FieldInfo(annotation=float, required=True), 'overconsolidation_ratio': FieldInfo(annotation=float, required=True), 'phreatic_level': FieldInfo(annotation=float, required=True), 'pile_tip_level': FieldInfo(annotation=float, required=True), 'top_positive_skin_friction': FieldInfo(annotation=float, 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.

overconsolidation_ratio: float
phreatic_level: float
pile_tip_level: float
top_positive_skin_friction: float
class geolib.soils.layers.ProfileLayer(**data)

Layer in a Profile. Note that we add the vertical location of the layer with a Point class.

Todo

  • Will the ocr be added to the Soil class?

  • Decouple pore_pressures into special Class/Line

Parameters:

data (Any)

material: Soil
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]] = {'material': FieldInfo(annotation=Soil, required=True), 'ocr': FieldInfo(annotation=float, required=True), 'pore_pressure_bottom': FieldInfo(annotation=float, required=True), 'pore_pressure_top': FieldInfo(annotation=float, required=True), 'reduction_cone_resistance': FieldInfo(annotation=float, required=True), 'top': FieldInfo(annotation=Point, 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.

ocr: float
pore_pressure_bottom: float
pore_pressure_top: float
reduction_cone_resistance: float
top: Point