geolib.models.dfoundations.profiles

Classes

CPT(**data)

TODO To be expanded/generalized in GEOLib+

Excavation(**data)

Excavation class.

Profile(**data)

Generic profile class.

class geolib.models.dfoundations.profiles.CPT(**data)

TODO To be expanded/generalized in GEOLib+

measure_data need to be provided as a list of dicts:

[{
    "z": float,  # negative
    "qc": float,
}]

Note that timeorder_type will force all other CPTs in the same model to the same timeorder_type.

Parameters:

data (Any)

cptname: str
depthrange: float
excavation_type: ExcavationType
groundlevel: float
interpretation_model: InterpretationType
interpretation_model_stressdependent: Bool
measured_data: List[Dict[str, 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]] = {'cptname': FieldInfo(annotation=str, required=True), 'depthrange': FieldInfo(annotation=float, required=False, default=0.1), 'excavation_type': FieldInfo(annotation=ExcavationType, required=False, default=<ExcavationType.BEFORE: 1>), 'groundlevel': FieldInfo(annotation=float, required=True), 'interpretation_model': FieldInfo(annotation=InterpretationType, required=False, default=<InterpretationType.NEN_RULE: 0>), 'interpretation_model_stressdependent': FieldInfo(annotation=Bool, required=False, default=<Bool.FALSE: 0>), 'measured_data': FieldInfo(annotation=List[Dict[str, float]], required=True), 'pre_excavation': FieldInfo(annotation=float, required=False, default=987654321.0), 'timeorder_type': FieldInfo(annotation=TimeOrderType, required=False, default=<TimeOrderType.CPT_EXCAVATION_INSTALL: 1>), 'void_value_cone_resistance': FieldInfo(annotation=float, required=False, default=987654321.0), 'void_value_depth': FieldInfo(annotation=float, required=False, default=987654321.0), 'void_value_equivalent_electronic_qc': FieldInfo(annotation=float, required=False, default=987000000.0), 'void_value_friction_number': FieldInfo(annotation=float, required=False, default=987654321.0), 'void_value_pore_water_pressure': FieldInfo(annotation=float, required=False, default=987654321.0), 'void_value_sleeve_friction': FieldInfo(annotation=float, required=False, default=987654321.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.

pre_excavation: float
timeorder_type: TimeOrderType
to_profile(method, **kwargs)

TODO GEOLib+ Interpret CPT by method to generate a Profile.

Return type:

Profile

void_value_cone_resistance: float
void_value_depth: float
void_value_equivalent_electronic_qc: float
void_value_friction_number: float
void_value_pore_water_pressure: float
void_value_sleeve_friction: float
class geolib.models.dfoundations.profiles.Excavation(**data)

Excavation class.

Note that using an excavation level will override all previous set excavation levels in the same model.

Parameters:

data (Any)

distance_edge_pile_to_excavation_boundary: float
excavation_length_infinite: Bool
excavation_level: float
excavation_width_infinite: 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]] = {'distance_edge_pile_to_excavation_boundary': FieldInfo(annotation=float, required=False, default=0.0), 'excavation_length_infinite': FieldInfo(annotation=Bool, required=False, default=<Bool.TRUE: 1>), 'excavation_level': FieldInfo(annotation=float, required=True), 'excavation_width_infinite': FieldInfo(annotation=Bool, required=False, default=<Bool.TRUE: 1>), 'reduction_of_core_resistance': FieldInfo(annotation=ReductionCoreResistanceEnum, required=False, default=<ReductionCoreResistanceEnum.SAFE: 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.

reduction_of_core_resistance: ReductionCoreResistanceEnum
class geolib.models.dfoundations.profiles.Profile(**data)

Generic profile class.

Layers need to be provided as a list of dicts:

[{
    "name": str,
    "material": str,
    "top_level": float  # [m]
    "excess_pore_pressure_top": float = 0.0  # [kN/m3]
    "excess_pore_pressure_bottom": float = 0.0  # [kN/m3]
    "ocr_value": float = 1.0  # [-]
    "reduction_core_resistance": float = 0.0  # [%]
},]
Parameters:

data (Any)

bottom_of_negative_skin_friction: float
concentration_value_frohlich: int
cpt: CPT
excavation: Optional[Excavation]
expected_ground_level_settlement: float
layers: List[Dict[str, Any]]
location: Point
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_of_negative_skin_friction': FieldInfo(annotation=float, required=False, default=0.0), 'concentration_value_frohlich': FieldInfo(annotation=int, required=False, default=3), 'cpt': FieldInfo(annotation=CPT, required=True), 'excavation': FieldInfo(annotation=Union[Excavation, NoneType], required=False, default=None), 'expected_ground_level_settlement': FieldInfo(annotation=float, required=False, default=0.0), 'layers': FieldInfo(annotation=List[Dict[str, Any]], required=True), 'location': FieldInfo(annotation=Point, required=True), 'name': FieldInfo(annotation=str, required=True), 'overconsolidation_ratio': FieldInfo(annotation=float, required=False, default=1.0), 'phreatic_level': FieldInfo(annotation=float, required=True), 'pile_tip_level': FieldInfo(annotation=float, required=True), 'placement_depth_of_foundation': FieldInfo(annotation=float, required=False, default=0.0), 'top_of_positive_skin_friction': FieldInfo(annotation=float, required=False, default=0.0), 'top_tension_zone': FieldInfo(annotation=float, required=False, default=0.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.

name: str
overconsolidation_ratio: float
phreatic_level: float
pile_tip_level: float
placement_depth_of_foundation: float
top_of_positive_skin_friction: float
top_tension_zone: float