Index
subsurfaceio.soil_structure_interaction
Soil-structure interaction API.
Compute SSI period lengthening and foundation stiffnesses:
from subsurfaceio.soil_structure_interaction import SoilStructureInteraction
SoilStructureInteraction(metadata=metadata, data=profile).calculate_effects()
Classes:
| Name | Description |
|---|---|
Data |
Shear-velocity profile row for SSI. |
NodeData |
Foundation node location and pile layout. |
SSIEffectsResults |
SSI period-lengthening effects results. |
SSIFootingStiffnessIntensitiesResults |
SSI footing stiffness-intensity results. |
SSIFootingStiffnessResults |
SSI footing stiffness results. |
SSIIntermediateResults |
SSI intermediate soil and structure results. |
SSINodeDataResults |
SSI per-node stiffness results. |
SSIPileStiffnessInGroupResults |
SSI pile-in-group stiffness results. |
SSIPileStiffnessResults |
SSI single-pile stiffness results. |
SoilStructureInteraction |
Soil-structure interaction calculations based on NIST (2012) report. |
SoilStructureInteractionMetadata |
Structure, footing, soil, and pile inputs for SSI. |
TributaryAreas |
Node tributary-area results. |
TributaryAreasData |
Node tributary-area result row. |
Attributes:
SSIEffectsResultsMetadata
module-attribute
SSIEffectsResultsMetadata = create_model(
"SSIEffectsResultsMetadata",
__base__=BaseModel,
**as_fields(
FunctionSequences.SSIEffects.return_names(
scalar=True
)
)
)
SSIFootingStiffnessIntensitiesResultsData
module-attribute
SSIFootingStiffnessIntensitiesResultsData = create_model(
"SSIFootingStiffnessIntensitiesResultsData",
__base__=BaseModel,
**as_fields(
FunctionSequences.SSIFootingStiffnessIntensities.return_names(
scalar=False
)
)
)
SSIFootingStiffnessIntensitiesResultsMetadata
module-attribute
SSIFootingStiffnessIntensitiesResultsMetadata = create_model(
"SSIFootingStiffnessIntensitiesResultsMetadata",
__base__=BaseModel,
**as_fields(
FunctionSequences.SSIFootingStiffnessIntensities.return_names(
scalar=True
)
)
)
SSIFootingStiffnessResultsData
module-attribute
SSIFootingStiffnessResultsData = create_model(
"SSIFootingStiffnessResultsData",
__base__=BaseModel,
**as_fields(
FunctionSequences.SSIFootingStiffness.return_names(
scalar=False
)
)
)
SSIIntermediateResultsMetadata
module-attribute
SSIIntermediateResultsMetadata = create_model(
"SSIIntermediateResultsMetadata",
__base__=BaseModel,
**as_fields(
FunctionSequences.SSIIntermediate.return_names(
scalar=True
)
)
)
SSINodeDataResultsData
module-attribute
SSINodeDataResultsData = create_model(
"SSINodeDataResultsData",
__base__=BaseModel,
**as_fields(
FunctionSequences.SSINodeData.return_names(
scalar=False
)
)
)
SSIPileStiffnessInGroupResultsData
module-attribute
SSIPileStiffnessInGroupResultsData = create_model(
"SSIPileStiffnessInGroupResultsData",
__base__=BaseModel,
**as_fields(
FunctionSequences.SSIPileStiffnessInGroup.return_names(
scalar=False
)
)
)
SSIPileStiffnessResultsData
module-attribute
SSIPileStiffnessResultsData = create_model(
"SSIPileStiffnessResultsData",
__base__=BaseModel,
**as_fields(
FunctionSequences.SSIPileStiffness.return_names(
scalar=False
)
)
)
Data
pydantic-model
Bases: BaseModel
Shear-velocity profile row for SSI.
Fields:
NodeData
pydantic-model
Bases: BaseModel
Foundation node location and pile layout.
Fields:
-
node_id(int) -
pile_count(int) -
pile_group_configuration(PileGroupConfiguration) -
coordinate_x(float) -
coordinate_y(float)
SSIEffectsResults
pydantic-model
Bases: BaseModel
SSI period-lengthening effects results.
Fields:
SSIFootingStiffnessIntensitiesResults
pydantic-model
Bases: BaseModel
SSI footing stiffness-intensity results.
Fields:
SSIFootingStiffnessResults
pydantic-model
SSIIntermediateResults
pydantic-model
Bases: BaseModel
SSI intermediate soil and structure results.
Fields:
SSINodeDataResults
pydantic-model
SSIPileStiffnessInGroupResults
pydantic-model
Bases: BaseModel
SSI pile-in-group stiffness results.
Fields:
SSIPileStiffnessResults
pydantic-model
Bases: BaseModel
SSI single-pile stiffness results.
Fields:
-
data(list[SSIPileStiffnessResultsData])
SoilStructureInteraction
pydantic-model
Bases: Model
Soil-structure interaction calculations based on NIST (2012) report.
References
- nist2012soil
Fields:
-
metadata(SoilStructureInteractionMetadata) -
data(list[Data]) -
node_data(list[NodeData]) -
effects(SSIEffectsResults | None) -
intermediate(SSIIntermediateResults | None) -
footing_stiffness(SSIFootingStiffnessResults | None) -
footing_stiffness_intensities(SSIFootingStiffnessIntensitiesResults | None) -
pile_stiffness(SSIPileStiffnessResults | None) -
pile_stiffness_in_group(SSIPileStiffnessInGroupResults | None) -
tributary_areas(TributaryAreas | None) -
node_data_results(SSINodeDataResults | None)
footing_stiffness_intensities
pydantic-field
pile_stiffness_in_group
pydantic-field
calculate_effects
Compute SSI period lengthening and related effect factors.
Returns:
| Type | Description |
|---|---|
Self
|
|
calculate_footing_stiffness
Compute footing stiffnesses from intermediate results.
Returns:
| Type | Description |
|---|---|
Self
|
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
calculate_footing_stiffness_intensities
Distribute footing stiffness into intensity zones.
Returns:
| Type | Description |
|---|---|
Self
|
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
calculate_intermediate
Compute intermediate SSI profile quantities.
Returns:
| Type | Description |
|---|---|
Self
|
|
calculate_node_data
Assemble per-node stiffness from tributary areas and intensities.
Returns:
| Type | Description |
|---|---|
Self
|
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If pile-in-group, footing intensities, or tributary areas are missing. |
calculate_pile_stiffness
Compute pile stiffnesses from intermediate results.
Returns:
| Type | Description |
|---|---|
Self
|
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
calculate_pile_stiffness_in_group
Apply group interaction to pile stiffnesses.
Returns:
| Type | Description |
|---|---|
Self
|
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
calculate_stiffness
Run the full stiffness pipeline (intermediate through pile-in-group).
Returns:
| Type | Description |
|---|---|
Self
|
|
get_footing_intensities_poly_map
Return the footing intensity-zone polygon map.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Cached polygon map for the footing plan. |
get_node_tributary_areas
Compute node tributary areas from Voronoi and intensity zones.
Returns:
| Type | Description |
|---|---|
Self
|
|
get_voronoi
Return the node Voronoi partition.
Returns:
| Type | Description |
|---|---|
Any
|
Cached Voronoi partition of the footing plan. |
plot_basement
Draw the basement plan with optional node stiffness labels.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
plot_module
|
Literal['plotly', 'mpl']
|
Figure backend. |
'plotly'
|
Returns:
| Type | Description |
|---|---|
Any
|
Plotted 3-D or plan figure. |
plot_effects
Overlay SSI effects on the published period-lengthening chart.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
plot_module
|
Literal['plotly', 'mpl']
|
Figure backend. |
'plotly'
|
Returns:
| Type | Description |
|---|---|
Any
|
Plotted reference figure. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
SoilStructureInteractionMetadata
pydantic-model
Bases: BaseModel
Structure, footing, soil, and pile inputs for SSI.
Fields:
-
structure_flexible_period(NullableFloat) -
structure_total_height(NullableFloat) -
structure_rigid_period(NullableFloat) -
footing_embedment(NullableFloat) -
footing_width(NullableFloat) -
footing_length(NullableFloat) -
end_length_ratio(NullableFloat) -
elasticity_modulus(NullableFloat) -
unit_weight(NullableFloat) -
poisson_ratio(NullableFloat) -
shear_modulus_reduction_factor(NullableFloat) -
soil_damping_ratio(NullableFloat) -
pile_diameter(NullableFloat) -
pile_embedment_length(NullableFloat) -
pile_elasticity_modulus(NullableFloat) -
pile_unit_weight(NullableFloat)
TributaryAreas
pydantic-model
TributaryAreasData
pydantic-model
Bases: BaseModel
Node tributary-area result row.
Fields: