api581-engine 0.1.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- api581/__init__.py +80 -0
- api581/_amine_tables.py +105 -0
- api581/_h2sh2_tables.py +161 -0
- api581/_slabx_worker.py +174 -0
- api581/_sulfidic_tables.py +517 -0
- api581/_sulfuric_tables.py +328 -0
- api581/acid_sour_water.py +238 -0
- api581/acscc_screening.py +88 -0
- api581/alkaline_sour_water.py +267 -0
- api581/amine_corrosion.py +277 -0
- api581/amine_screening.py +103 -0
- api581/api/__init__.py +4 -0
- api581/api/api520.py +88 -0
- api581/api/bundle.py +121 -0
- api581/api/consequence.py +102 -0
- api581/api/damage.py +1831 -0
- api581/api/dispersion.py +121 -0
- api581/api/effects.py +318 -0
- api581/api/events.py +96 -0
- api581/api/financial.py +115 -0
- api581/api/frequency.py +40 -0
- api581/api/inspection.py +96 -0
- api581/api/level1.py +238 -0
- api581/api/level2.py +74 -0
- api581/api/planning.py +17 -0
- api581/api/prd.py +190 -0
- api581/api/properties.py +130 -0
- api581/api/release.py +252 -0
- api581/api/reliability.py +40 -0
- api581/api/risk.py +71 -0
- api581/api/tank.py +490 -0
- api581/api520.py +205 -0
- api581/area_contribution.py +72 -0
- api581/blast.py +232 -0
- api581/brittle.py +205 -0
- api581/bundle.py +300 -0
- api581/catalog.py +442 -0
- api581/caustic_screening.py +103 -0
- api581/clad_thinning.py +146 -0
- api581/clscc_screening.py +55 -0
- api581/co2_corrosion.py +313 -0
- api581/co2_screening.py +205 -0
- api581/consequences.py +250 -0
- api581/contracts.py +1038 -0
- api581/cooling_selection.py +204 -0
- api581/cooling_water.py +305 -0
- api581/core.py +126 -0
- api581/corrosion_rate.py +38 -0
- api581/cost_tables.py +175 -0
- api581/cracking.py +74 -0
- api581/data/coverage.json +21361 -0
- api581/data/digital-twin.schema.json +538 -0
- api581/data/direct-test-queue.json +7 -0
- api581/data/native-engine-evidence.json +44 -0
- api581/data/python-api.schema.json +92706 -0
- api581/data/reference-fixture-evidence.json +2956 -0
- api581/data/scope-boundaries.schema.json +58 -0
- api581/data/software-test-evidence.json +4278 -0
- api581/data/standard-metadata.json +1328 -0
- api581/data/standard.schema.json +233 -0
- api581/data/supporting-text-review.json +1319 -0
- api581/digital_twin.py +491 -0
- api581/dispersion.py +45 -0
- api581/effects.py +232 -0
- api581/evaporation.py +181 -0
- api581/evidence.py +81 -0
- api581/external_corrosion.py +148 -0
- api581/external_cracking.py +63 -0
- api581/fatigue.py +56 -0
- api581/fireball.py +163 -0
- api581/flash_pool.py +111 -0
- api581/flash_solver.py +122 -0
- api581/groundwater.py +101 -0
- api581/h2sh2_corrosion.py +128 -0
- api581/hic_screened.py +89 -0
- api581/htha.py +45 -0
- api581/hydrochloric_acid.py +272 -0
- api581/hydrofluoric_acid.py +236 -0
- api581/ignition.py +204 -0
- api581/inspection_effectiveness.py +601 -0
- api581/jet_handoff.py +60 -0
- api581/level1.py +311 -0
- api581/level1_summary.py +35 -0
- api581/level1_toxic.py +313 -0
- api581/level1_type1.py +91 -0
- api581/level2_summary.py +237 -0
- api581/lining.py +173 -0
- api581/native_toxic.py +67 -0
- api581/outputs.py +5672 -0
- api581/oxidation.py +145 -0
- api581/pascc_screening.py +78 -0
- api581/physical_explosion.py +190 -0
- api581/pof.py +207 -0
- api581/pool_fire.py +273 -0
- api581/portfolio.py +68 -0
- api581/prd.py +204 -0
- api581/prd_consequences.py +245 -0
- api581/prd_history.py +44 -0
- api581/py.typed +0 -0
- api581/release.py +307 -0
- api581/representative_fluids.py +172 -0
- api581/result.py +50 -0
- api581/risk.py +191 -0
- api581/saturation.py +66 -0
- api581/scc_mechanisms.py +242 -0
- api581/schema.py +45 -0
- api581/slabx_adapter.py +261 -0
- api581/soil_corrosion.py +191 -0
- api581/source_partition.py +169 -0
- api581/spatial.py +87 -0
- api581/ssc_screening.py +77 -0
- api581/standard.py +281 -0
- api581/storage.py +42 -0
- api581/sulfidic_corrosion.py +197 -0
- api581/sulfuric_acid.py +209 -0
- api581/tank.py +260 -0
- api581/tank_corrosion.py +256 -0
- api581/tank_environment.py +186 -0
- api581/tank_financial.py +202 -0
- api581/tank_integrated.py +51 -0
- api581/tank_shell.py +141 -0
- api581/tank_source.py +152 -0
- api581/tank_thinning.py +204 -0
- api581/temper.py +105 -0
- api581/thinning.py +172 -0
- api581/thinning_conditions.py +212 -0
- api581/thinning_history.py +118 -0
- api581/thinning_selection.py +81 -0
- api581/thinning_type.py +34 -0
- api581/toxic_criteria.py +111 -0
- api581/toxic_level2.py +233 -0
- api581/two_phase_events.py +120 -0
- api581/workflow.py +42 -0
- api581_engine-0.1.4.dist-info/METADATA +419 -0
- api581_engine-0.1.4.dist-info/RECORD +139 -0
- api581_engine-0.1.4.dist-info/WHEEL +5 -0
- api581_engine-0.1.4.dist-info/licenses/LICENSE +161 -0
- api581_engine-0.1.4.dist-info/licenses/NOTICE.md +18 -0
- api581_engine-0.1.4.dist-info/top_level.txt +1 -0
api581/api/risk.py
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"""Public risk calculations. Inputs and outputs use named SI units.
|
|
2
|
+
Generated by scripts/build_python_api.py; inspect the request model for fields.
|
|
3
|
+
"""
|
|
4
|
+
from ..core import Context
|
|
5
|
+
from ..result import CalculationResult, calculate
|
|
6
|
+
|
|
7
|
+
from ..flash_pool import FlashedBoilingPoolFlashFire as FlashedBoilingPoolFlashFireInput
|
|
8
|
+
from ..pof import GoverningDamage as GoverningDamageInput
|
|
9
|
+
from ..risk import HoleConsequence as HoleConsequenceInput
|
|
10
|
+
from ..slabx_adapter import NativeAtmosphere as NativeAtmosphereInput
|
|
11
|
+
from ..portfolio import PortfolioComponent as PortfolioComponentInput
|
|
12
|
+
from ..risk import RiskScenario as RiskScenarioInput
|
|
13
|
+
from ..evaporation import SurfaceInteraction as SurfaceInteractionInput
|
|
14
|
+
|
|
15
|
+
from ..risk import Risk as AggregateInput
|
|
16
|
+
from ..outputs import RiskAggregateOutput as AggregateOutput
|
|
17
|
+
|
|
18
|
+
def aggregate(inputs: AggregateInput, *, context: Context | None = None) -> CalculationResult[AggregateOutput]:
|
|
19
|
+
'Aggregate disjoint release-scenario risks'
|
|
20
|
+
return calculate('risk/aggregate', inputs, output_type=AggregateOutput, context=context)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
from ..risk import Assessment as AssessmentInput
|
|
24
|
+
from ..outputs import RiskAssessmentOutput as AssessmentOutput
|
|
25
|
+
|
|
26
|
+
def assessment(inputs: AssessmentInput, *, context: Context | None = None) -> CalculationResult[AssessmentOutput]:
|
|
27
|
+
'Compose GFF, Fms, supplied DF and supplied hole consequences'
|
|
28
|
+
return calculate('risk/assessment', inputs, output_type=AssessmentOutput, context=context)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
from ..risk import DamageAssessment as AssessmentFromDamageInput
|
|
32
|
+
from ..outputs import RiskAssessmentFromDamageOutput as AssessmentFromDamageOutput
|
|
33
|
+
|
|
34
|
+
def assessment_from_damage(inputs: AssessmentFromDamageInput, *, context: Context | None = None) -> CalculationResult[AssessmentFromDamageOutput]:
|
|
35
|
+
'Compose damage mechanisms, GFF, management factor and hole consequences'
|
|
36
|
+
return calculate('risk/assessment-from-damage', inputs, output_type=AssessmentFromDamageOutput, context=context)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
from ..risk import Matrix as MatrixInput
|
|
40
|
+
from ..outputs import RiskMatrixOutput as MatrixOutput
|
|
41
|
+
|
|
42
|
+
def matrix(inputs: MatrixInput, *, context: Context | None = None) -> CalculationResult[MatrixOutput]:
|
|
43
|
+
'Owner-defined risk matrix classification'
|
|
44
|
+
return calculate('risk/matrix', inputs, output_type=MatrixOutput, context=context)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
from ..area_contribution import AreaEventContribution as AreaEventContributionInput
|
|
48
|
+
from ..outputs import RiskAreaEventContributionOutput as AreaEventContributionOutput
|
|
49
|
+
|
|
50
|
+
def area_event_contribution(inputs: AreaEventContributionInput, *, context: Context | None = None) -> CalculationResult[AreaEventContributionOutput]:
|
|
51
|
+
'Selected conditional event/weather area-risk contribution'
|
|
52
|
+
return calculate('risk/area-event-contribution', inputs, output_type=AreaEventContributionOutput, context=context)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
from ..area_contribution import FlashedPoolRiskContribution as FlashedPoolFlashFireContributionInput
|
|
56
|
+
from ..outputs import RiskFlashedPoolFlashFireContributionOutput as FlashedPoolFlashFireContributionOutput
|
|
57
|
+
|
|
58
|
+
def flashed_pool_flash_fire_contribution(inputs: FlashedPoolFlashFireContributionInput, *, context: Context | None = None) -> CalculationResult[FlashedPoolFlashFireContributionOutput]:
|
|
59
|
+
'Selected hole/weather EOS-to-flash-fire annual area-risk contribution'
|
|
60
|
+
return calculate('risk/flashed-pool-flash-fire-contribution', inputs, output_type=FlashedPoolFlashFireContributionOutput, context=context)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
from ..portfolio import PortfolioRisk as PortfolioInput
|
|
64
|
+
from ..outputs import RiskPortfolioOutput as PortfolioOutput
|
|
65
|
+
|
|
66
|
+
def portfolio(inputs: PortfolioInput, *, context: Context | None = None) -> CalculationResult[PortfolioOutput]:
|
|
67
|
+
'Aggregate qualified component risks for a site or digital-twin portfolio'
|
|
68
|
+
return calculate('risk/portfolio', inputs, output_type=PortfolioOutput, context=context)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
__all__ = ['FlashedBoilingPoolFlashFireInput', 'GoverningDamageInput', 'HoleConsequenceInput', 'NativeAtmosphereInput', 'PortfolioComponentInput', 'RiskScenarioInput', 'SurfaceInteractionInput', 'aggregate', 'AggregateInput', 'AggregateOutput', 'assessment', 'AssessmentInput', 'AssessmentOutput', 'assessment_from_damage', 'AssessmentFromDamageInput', 'AssessmentFromDamageOutput', 'matrix', 'MatrixInput', 'MatrixOutput', 'area_event_contribution', 'AreaEventContributionInput', 'AreaEventContributionOutput', 'flashed_pool_flash_fire_contribution', 'FlashedPoolFlashFireContributionInput', 'FlashedPoolFlashFireContributionOutput', 'portfolio', 'PortfolioInput', 'PortfolioOutput']
|
api581/api/tank.py
ADDED
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
"""Public tank calculations. Inputs and outputs use named SI units.
|
|
2
|
+
Generated by scripts/build_python_api.py; inspect the request model for fields.
|
|
3
|
+
"""
|
|
4
|
+
from ..core import Context
|
|
5
|
+
from ..result import CalculationResult, calculate
|
|
6
|
+
|
|
7
|
+
from ..pool_fire import Atmosphere as AtmosphereInput
|
|
8
|
+
from ..tank_thinning import BottomAdjustments as BottomAdjustmentsInput
|
|
9
|
+
from ..tank_corrosion import BottomCP as BottomCPInput
|
|
10
|
+
from ..tank_corrosion import BottomCorrosion as BottomCorrosionInput
|
|
11
|
+
from ..tank_thinning import BottomCorrosionThinning as BottomCorrosionThinningInput
|
|
12
|
+
from ..tank_corrosion import BottomDrainage as BottomDrainageInput
|
|
13
|
+
from ..tank_integrated import BottomEconomics as BottomEconomicsInput
|
|
14
|
+
from ..tank_financial import BottomFinancial as BottomFinancialInput
|
|
15
|
+
from ..tank_thinning import BottomInspectionSelection as Tank_thinningBottomInspectionSelectionInput
|
|
16
|
+
from ..tank_thinning import BottomMinimumThickness as Tank_thinningBottomMinimumThicknessInput
|
|
17
|
+
from ..tank_corrosion import BottomPad as BottomPadInput
|
|
18
|
+
from ..tank_corrosion import BottomProductCondition as BottomProductConditionInput
|
|
19
|
+
from ..tank_source import BottomSource as BottomSourceInput
|
|
20
|
+
from ..tank_corrosion import BottomSteamCoil as BottomSteamCoilInput
|
|
21
|
+
from ..tank_corrosion import BottomTemperature as BottomTemperatureInput
|
|
22
|
+
from ..tank_thinning import BottomThinningBasis as BottomThinningBasisInput
|
|
23
|
+
from ..tank_corrosion import BottomWaterDraw as BottomWaterDrawInput
|
|
24
|
+
from ..level2_summary import CorrelatedJetPool as CorrelatedJetPoolInput
|
|
25
|
+
from ..level2_summary import FlammableOutcome as FlammableOutcomeInput
|
|
26
|
+
from ..effects import PoolBurning as PoolBurningInput
|
|
27
|
+
from ..tank_shell import ShellCase as ShellCaseInput
|
|
28
|
+
from ..tank_shell import ShellEconomics as ShellEconomicsInput
|
|
29
|
+
from ..tank_financial import ShellFinancial as ShellFinancialInput
|
|
30
|
+
from ..tank_source import ShellSource as ShellSourceInput
|
|
31
|
+
from ..tank_financial import TankRepairBasis as TankRepairBasisInput
|
|
32
|
+
from ..toxic_level2 import ToxicCloudArea as ToxicCloudAreaInput
|
|
33
|
+
|
|
34
|
+
from ..tank import FluidLookup as FluidTableInput
|
|
35
|
+
from ..outputs import TankFluidTableOutput as FluidTableOutput
|
|
36
|
+
|
|
37
|
+
def fluid_table(inputs: FluidTableInput, *, context: Context | None = None) -> CalculationResult[FluidTableOutput]:
|
|
38
|
+
'AST SI representative fluid properties'
|
|
39
|
+
return calculate('tank/fluid-table', inputs, output_type=FluidTableOutput, context=context)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
from ..tank import SoilLookup as SoilTableInput
|
|
43
|
+
from ..outputs import TankSoilTableOutput as SoilTableOutput
|
|
44
|
+
|
|
45
|
+
def soil_table(inputs: SoilTableInput, *, context: Context | None = None) -> CalculationResult[SoilTableOutput]:
|
|
46
|
+
'AST SI soil conductivity bounds and porosity'
|
|
47
|
+
return calculate('tank/soil-table', inputs, output_type=SoilTableOutput, context=context)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
from ..tank import WaterConductivity as SoilWaterConductivityInput
|
|
51
|
+
from ..outputs import TankSoilWaterConductivityOutput as SoilWaterConductivityOutput
|
|
52
|
+
|
|
53
|
+
def soil_water_conductivity(inputs: SoilWaterConductivityInput, *, context: Context | None = None) -> CalculationResult[SoilWaterConductivityOutput]:
|
|
54
|
+
'Mean water hydraulic conductivity in m/day'
|
|
55
|
+
return calculate('tank/soil-water-conductivity', inputs, output_type=SoilWaterConductivityOutput, context=context)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
from ..tank import FluidConductivity as FluidConductivityInput
|
|
59
|
+
from ..outputs import TankFluidConductivityOutput as FluidConductivityOutput
|
|
60
|
+
|
|
61
|
+
def fluid_conductivity(inputs: FluidConductivityInput, *, context: Context | None = None) -> CalculationResult[FluidConductivityOutput]:
|
|
62
|
+
'Product hydraulic conductivity from water reference'
|
|
63
|
+
return calculate('tank/fluid-conductivity', inputs, output_type=FluidConductivityOutput, context=context)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
from ..tank import Seepage as SeepageVelocityInput
|
|
67
|
+
from ..outputs import TankSeepageVelocityOutput as SeepageVelocityOutput
|
|
68
|
+
|
|
69
|
+
def seepage_velocity(inputs: SeepageVelocityInput, *, context: Context | None = None) -> CalculationResult[SeepageVelocityOutput]:
|
|
70
|
+
'AST product seepage velocity through soil'
|
|
71
|
+
return calculate('tank/seepage-velocity', inputs, output_type=SeepageVelocityOutput, context=context)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
from ..tank import BottomHoleCount as BottomHoleCountInput
|
|
75
|
+
from ..outputs import TankBottomHoleCountOutput as BottomHoleCountOutput
|
|
76
|
+
|
|
77
|
+
def bottom_hole_count(inputs: BottomHoleCountInput, *, context: Context | None = None) -> CalculationResult[BottomHoleCountOutput]:
|
|
78
|
+
'AST bottom small-hole count from diameter'
|
|
79
|
+
return calculate('tank/bottom-hole-count', inputs, output_type=BottomHoleCountOutput, context=context)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
from ..tank import BottomInventory as BottomInventoryInput
|
|
83
|
+
from ..outputs import TankBottomInventoryOutput as BottomInventoryOutput
|
|
84
|
+
|
|
85
|
+
def bottom_inventory(inputs: BottomInventoryInput, *, context: Context | None = None) -> CalculationResult[BottomInventoryOutput]:
|
|
86
|
+
'Full cylindrical AST bottom inventory'
|
|
87
|
+
return calculate('tank/bottom-inventory', inputs, output_type=BottomInventoryOutput, context=context)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
from ..tank import ShellInventory as ShellCourseInventoryInput
|
|
91
|
+
from ..outputs import TankShellCourseInventoryOutput as ShellCourseInventoryOutput
|
|
92
|
+
|
|
93
|
+
def shell_course_inventory(inputs: ShellCourseInventoryInput, *, context: Context | None = None) -> CalculationResult[ShellCourseInventoryOutput]:
|
|
94
|
+
'Inventory and head above AST shell-course lower edge'
|
|
95
|
+
return calculate('tank/shell-course-inventory', inputs, output_type=ShellCourseInventoryOutput, context=context)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
from ..tank import ShellFlow as ShellFlowInput
|
|
99
|
+
from ..outputs import TankShellFlowOutput as ShellFlowOutput
|
|
100
|
+
|
|
101
|
+
def shell_flow(inputs: ShellFlowInput, *, context: Context | None = None) -> CalculationResult[ShellFlowOutput]:
|
|
102
|
+
'Constant-head AST shell-course liquid discharge'
|
|
103
|
+
return calculate('tank/shell-flow', inputs, output_type=ShellFlowOutput, context=context)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
from ..tank import BottomFlow as BottomFlowInput
|
|
107
|
+
from ..outputs import TankBottomFlowOutput as BottomFlowOutput
|
|
108
|
+
|
|
109
|
+
def bottom_flow(inputs: BottomFlowInput, *, context: Context | None = None) -> CalculationResult[BottomFlowOutput]:
|
|
110
|
+
'AST bottom Bernoulli/Giraud/transition discharge'
|
|
111
|
+
return calculate('tank/bottom-flow', inputs, output_type=BottomFlowOutput, context=context)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
from ..tank import ShellDetection as ShellDetectionTimeInput
|
|
115
|
+
from ..outputs import TankShellDetectionTimeOutput as ShellDetectionTimeOutput
|
|
116
|
+
|
|
117
|
+
def shell_detection_time(inputs: ShellDetectionTimeInput, *, context: Context | None = None) -> CalculationResult[ShellDetectionTimeOutput]:
|
|
118
|
+
'AST shell leak detection-time criterion'
|
|
119
|
+
return calculate('tank/shell-detection-time', inputs, output_type=ShellDetectionTimeOutput, context=context)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
from ..tank import BottomDetection as BottomDetectionTimeInput
|
|
123
|
+
from ..outputs import TankBottomDetectionTimeOutput as BottomDetectionTimeOutput
|
|
124
|
+
|
|
125
|
+
def bottom_detection_time(inputs: BottomDetectionTimeInput, *, context: Context | None = None) -> CalculationResult[BottomDetectionTimeOutput]:
|
|
126
|
+
'AST bottom leak detection-time criterion'
|
|
127
|
+
return calculate('tank/bottom-detection-time', inputs, output_type=BottomDetectionTimeOutput, context=context)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
from ..tank import ReleaseVolume as ReleaseVolumeInput
|
|
131
|
+
from ..outputs import TankReleaseVolumeOutput as ReleaseVolumeOutput
|
|
132
|
+
|
|
133
|
+
def release_volume(inputs: ReleaseVolumeInput, *, context: Context | None = None) -> CalculationResult[ReleaseVolumeOutput]:
|
|
134
|
+
'Inventory-limited AST leakage or full-volume rupture'
|
|
135
|
+
return calculate('tank/release-volume', inputs, output_type=ReleaseVolumeOutput, context=context)
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
from ..tank_environment import EnvironmentalCostTable as EnvironmentCostTableInput
|
|
139
|
+
from ..outputs import TankEnvironmentCostTableOutput as EnvironmentCostTableOutput
|
|
140
|
+
|
|
141
|
+
def environment_cost_table(inputs: EnvironmentCostTableInput, *, context: Context | None = None) -> CalculationResult[EnvironmentCostTableOutput]:
|
|
142
|
+
'AST estimated environmental costs in source USD/bbl'
|
|
143
|
+
return calculate('tank/environment-cost-table', inputs, output_type=EnvironmentCostTableOutput, context=context)
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
from ..tank_environment import SurfaceSpill as SurfaceSpillPartitionInput
|
|
147
|
+
from ..outputs import TankSurfaceSpillPartitionOutput as SurfaceSpillPartitionOutput
|
|
148
|
+
|
|
149
|
+
def surface_spill_partition(inputs: SurfaceSpillPartitionInput, *, context: Context | None = None) -> CalculationResult[SurfaceSpillPartitionOutput]:
|
|
150
|
+
'Sequential AST surface spill allocation'
|
|
151
|
+
return calculate('tank/surface-spill-partition', inputs, output_type=SurfaceSpillPartitionOutput, context=context)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
from ..tank_environment import GroundwaterArrival as GroundwaterArrivalInput
|
|
155
|
+
from ..outputs import TankGroundwaterArrivalOutput as GroundwaterArrivalOutput
|
|
156
|
+
|
|
157
|
+
def groundwater_arrival(inputs: GroundwaterArrivalInput, *, context: Context | None = None) -> CalculationResult[GroundwaterArrivalOutput]:
|
|
158
|
+
'AST seepage travel time to groundwater'
|
|
159
|
+
return calculate('tank/groundwater-arrival', inputs, output_type=GroundwaterArrivalOutput, context=context)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
from ..tank_environment import SubsurfaceSpill as SubsurfaceSpillPartitionInput
|
|
163
|
+
from ..outputs import TankSubsurfaceSpillPartitionOutput as SubsurfaceSpillPartitionOutput
|
|
164
|
+
|
|
165
|
+
def subsurface_spill_partition(inputs: SubsurfaceSpillPartitionInput, *, context: Context | None = None) -> CalculationResult[SubsurfaceSpillPartitionOutput]:
|
|
166
|
+
'AST bottom leakage allocation to groundwater and subsoil'
|
|
167
|
+
return calculate('tank/subsurface-spill-partition', inputs, output_type=SubsurfaceSpillPartitionOutput, context=context)
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
from ..tank_environment import ShellEnvironment as ShellEnvironmentCostInput
|
|
171
|
+
from ..outputs import TankShellEnvironmentCostOutput as ShellEnvironmentCostOutput
|
|
172
|
+
|
|
173
|
+
def shell_environment_cost(inputs: ShellEnvironmentCostInput, *, context: Context | None = None) -> CalculationResult[ShellEnvironmentCostOutput]:
|
|
174
|
+
'GFF-weighted AST shell environmental consequence'
|
|
175
|
+
return calculate('tank/shell-environment-cost', inputs, output_type=ShellEnvironmentCostOutput, context=context)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
from ..tank_environment import BottomEnvironment as BottomEnvironmentCostInput
|
|
179
|
+
from ..outputs import TankBottomEnvironmentCostOutput as BottomEnvironmentCostOutput
|
|
180
|
+
|
|
181
|
+
def bottom_environment_cost(inputs: BottomEnvironmentCostInput, *, context: Context | None = None) -> CalculationResult[BottomEnvironmentCostOutput]:
|
|
182
|
+
'GFF-weighted AST bottom environmental consequence'
|
|
183
|
+
return calculate('tank/bottom-environment-cost', inputs, output_type=BottomEnvironmentCostOutput, context=context)
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
from ..tank_environment import BottomRepair as BottomRepairCostInput
|
|
187
|
+
from ..outputs import TankBottomRepairCostOutput as BottomRepairCostOutput
|
|
188
|
+
|
|
189
|
+
def bottom_repair_cost(inputs: BottomRepairCostInput, *, context: Context | None = None) -> CalculationResult[BottomRepairCostOutput]:
|
|
190
|
+
'AST bottom repair with rupture-only diameter scaling'
|
|
191
|
+
return calculate('tank/bottom-repair-cost', inputs, output_type=BottomRepairCostOutput, context=context)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
from ..tank_financial import TankComponent as GenericFrequencyInput
|
|
195
|
+
from ..outputs import TankGenericFrequencyOutput as GenericFrequencyOutput
|
|
196
|
+
|
|
197
|
+
def generic_frequency(inputs: GenericFrequencyInput, *, context: Context | None = None) -> CalculationResult[GenericFrequencyOutput]:
|
|
198
|
+
'AST generic frequencies with explicit equation-summed total'
|
|
199
|
+
return calculate('tank/generic-frequency', inputs, output_type=GenericFrequencyOutput, context=context)
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
from ..tank_financial import TankOutage as ComponentOutageInput
|
|
203
|
+
from ..outputs import TankComponentOutageOutput as ComponentOutageOutput
|
|
204
|
+
|
|
205
|
+
def component_outage(inputs: ComponentOutageInput, *, context: Context | None = None) -> CalculationResult[ComponentOutageOutput]:
|
|
206
|
+
'AST GFF-weighted component outage duration'
|
|
207
|
+
return calculate('tank/component-outage', inputs, output_type=ComponentOutageOutput, context=context)
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
from ..tank_financial import BottomFinancial as BottomFinancialConsequenceInput
|
|
211
|
+
from ..outputs import TankBottomFinancialConsequenceOutput as BottomFinancialConsequenceOutput
|
|
212
|
+
|
|
213
|
+
def bottom_financial_consequence(inputs: BottomFinancialConsequenceInput, *, context: Context | None = None) -> CalculationResult[BottomFinancialConsequenceOutput]:
|
|
214
|
+
'Compose AST bottom repair, production and environmental consequence'
|
|
215
|
+
return calculate('tank/bottom-financial-consequence', inputs, output_type=BottomFinancialConsequenceOutput, context=context)
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
from ..tank_financial import ShellFinancial as ShellFinancialConsequenceInput
|
|
219
|
+
from ..outputs import TankShellFinancialConsequenceOutput as ShellFinancialConsequenceOutput
|
|
220
|
+
|
|
221
|
+
def shell_financial_consequence(inputs: ShellFinancialConsequenceInput, *, context: Context | None = None) -> CalculationResult[ShellFinancialConsequenceOutput]:
|
|
222
|
+
'Compose five AST shell-course financial consequence categories'
|
|
223
|
+
return calculate('tank/shell-financial-consequence', inputs, output_type=ShellFinancialConsequenceOutput, context=context)
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
from ..tank_financial import BottomAssessment as BottomRiskAssessmentInput
|
|
227
|
+
from ..outputs import TankBottomRiskAssessmentOutput as BottomRiskAssessmentOutput
|
|
228
|
+
|
|
229
|
+
def bottom_risk_assessment(inputs: BottomRiskAssessmentInput, *, context: Context | None = None) -> CalculationResult[BottomRiskAssessmentOutput]:
|
|
230
|
+
'AST bottom financial consequence and annual risk'
|
|
231
|
+
return calculate('tank/bottom-risk-assessment', inputs, output_type=BottomRiskAssessmentOutput, context=context)
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
from ..tank_financial import ShellAssessment as ShellRiskAssessmentInput
|
|
235
|
+
from ..outputs import TankShellRiskAssessmentOutput as ShellRiskAssessmentOutput
|
|
236
|
+
|
|
237
|
+
def shell_risk_assessment(inputs: ShellRiskAssessmentInput, *, context: Context | None = None) -> CalculationResult[ShellRiskAssessmentOutput]:
|
|
238
|
+
'AST shell-course financial and area risks'
|
|
239
|
+
return calculate('tank/shell-risk-assessment', inputs, output_type=ShellRiskAssessmentOutput, context=context)
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
from ..tank_source import ShellHoles as ShellHoleSizesInput
|
|
243
|
+
from ..outputs import TankShellHoleSizesOutput as ShellHoleSizesOutput
|
|
244
|
+
|
|
245
|
+
def shell_hole_sizes(inputs: ShellHoleSizesInput, *, context: Context | None = None) -> CalculationResult[ShellHoleSizesOutput]:
|
|
246
|
+
'AST shell-course representative hole diameters and areas'
|
|
247
|
+
return calculate('tank/shell-hole-sizes', inputs, output_type=ShellHoleSizesOutput, context=context)
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
from ..tank_source import BottomHoles as BottomHoleSizesInput
|
|
251
|
+
from ..outputs import TankBottomHoleSizesOutput as BottomHoleSizesOutput
|
|
252
|
+
|
|
253
|
+
def bottom_hole_sizes(inputs: BottomHoleSizesInput, *, context: Context | None = None) -> CalculationResult[BottomHoleSizesOutput]:
|
|
254
|
+
'AST bottom representative hole diameters and areas'
|
|
255
|
+
return calculate('tank/bottom-hole-sizes', inputs, output_type=BottomHoleSizesOutput, context=context)
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
from ..tank_source import ShellSource as ShellSourceAssessmentInput
|
|
259
|
+
from ..outputs import TankShellSourceAssessmentOutput as ShellSourceAssessmentOutput
|
|
260
|
+
|
|
261
|
+
def shell_source_assessment(inputs: ShellSourceAssessmentInput, *, context: Context | None = None) -> CalculationResult[ShellSourceAssessmentOutput]:
|
|
262
|
+
'Compose AST shell holes, head, inventory, rates and released quantities'
|
|
263
|
+
return calculate('tank/shell-source-assessment', inputs, output_type=ShellSourceAssessmentOutput, context=context)
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
from ..tank_source import BottomSource as BottomSourceAssessmentInput
|
|
267
|
+
from ..outputs import TankBottomSourceAssessmentOutput as BottomSourceAssessmentOutput
|
|
268
|
+
|
|
269
|
+
def bottom_source_assessment(inputs: BottomSourceAssessmentInput, *, context: Context | None = None) -> CalculationResult[BottomSourceAssessmentOutput]:
|
|
270
|
+
'Compose AST soil, holes, inventory, seepage and released quantities'
|
|
271
|
+
return calculate('tank/bottom-source-assessment', inputs, output_type=BottomSourceAssessmentOutput, context=context)
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
from ..tank_integrated import BottomIntegrated as BottomIntegratedAssessmentInput
|
|
275
|
+
from ..outputs import TankBottomIntegratedAssessmentOutput as BottomIntegratedAssessmentOutput
|
|
276
|
+
|
|
277
|
+
def bottom_integrated_assessment(inputs: BottomIntegratedAssessmentInput, *, context: Context | None = None) -> CalculationResult[BottomIntegratedAssessmentOutput]:
|
|
278
|
+
'AST bottom geometry and soil through source, financial consequence and annual risk'
|
|
279
|
+
return calculate('tank/bottom-integrated-assessment', inputs, output_type=BottomIntegratedAssessmentOutput, context=context)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
from ..tank_shell import DikedPool as DikedPoolConsequenceInput
|
|
283
|
+
from ..outputs import TankDikedPoolConsequenceOutput as DikedPoolConsequenceOutput
|
|
284
|
+
|
|
285
|
+
def diked_pool_consequence(inputs: DikedPoolConsequenceInput, *, context: Context | None = None) -> CalculationResult[DikedPoolConsequenceOutput]:
|
|
286
|
+
'AST pool radiation with explicit dike-area interpretation'
|
|
287
|
+
return calculate('tank/diked-pool-consequence', inputs, output_type=DikedPoolConsequenceOutput, context=context)
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
from ..tank_shell import ShellCase as ShellLevel2CaseInput
|
|
291
|
+
from ..outputs import TankShellLevel2CaseOutput as ShellLevel2CaseOutput
|
|
292
|
+
|
|
293
|
+
def shell_level2_case(inputs: ShellLevel2CaseInput, *, context: Context | None = None) -> CalculationResult[ShellLevel2CaseOutput]:
|
|
294
|
+
'AST continuous shell event-weighted flammable and toxic areas'
|
|
295
|
+
return calculate('tank/shell-level2-case', inputs, output_type=ShellLevel2CaseOutput, context=context)
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
from ..tank_shell import ShellSummary as ShellLevel2SummaryInput
|
|
299
|
+
from ..outputs import TankShellLevel2SummaryOutput as ShellLevel2SummaryOutput
|
|
300
|
+
|
|
301
|
+
def shell_level2_summary(inputs: ShellLevel2SummaryInput, *, context: Context | None = None) -> CalculationResult[ShellLevel2SummaryOutput]:
|
|
302
|
+
'AST four-hole GFF-weighted flammable plus toxic final areas'
|
|
303
|
+
return calculate('tank/shell-level2-summary', inputs, output_type=ShellLevel2SummaryOutput, context=context)
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
from ..tank_shell import ShellIntegrated as ShellIntegratedAssessmentInput
|
|
307
|
+
from ..outputs import TankShellIntegratedAssessmentOutput as ShellIntegratedAssessmentOutput
|
|
308
|
+
|
|
309
|
+
def shell_integrated_assessment(inputs: ShellIntegratedAssessmentInput, *, context: Context | None = None) -> CalculationResult[ShellIntegratedAssessmentOutput]:
|
|
310
|
+
'AST shell source, supplied event footprints, financial consequence and annual risk'
|
|
311
|
+
return calculate('tank/shell-integrated-assessment', inputs, output_type=ShellIntegratedAssessmentOutput, context=context)
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
from ..tank_corrosion import BottomBase as BottomBaseCorrosionRateInput
|
|
315
|
+
from ..outputs import TankBottomBaseCorrosionRateOutput as BottomBaseCorrosionRateOutput
|
|
316
|
+
|
|
317
|
+
def bottom_base_corrosion_rate(inputs: BottomBaseCorrosionRateInput, *, context: Context | None = None) -> CalculationResult[BottomBaseCorrosionRateOutput]:
|
|
318
|
+
'AST floor reference base corrosion rate'
|
|
319
|
+
return calculate('tank/bottom-base-corrosion-rate', inputs, output_type=BottomBaseCorrosionRateOutput, context=context)
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
from ..tank_corrosion import BottomSoilRateEquation as BottomSoilRateEquationInput
|
|
323
|
+
from ..outputs import TankBottomSoilRateEquationOutput as BottomSoilRateEquationOutput
|
|
324
|
+
|
|
325
|
+
def bottom_soil_rate_equation(inputs: BottomSoilRateEquationInput, *, context: Context | None = None) -> CalculationResult[BottomSoilRateEquationOutput]:
|
|
326
|
+
'AST floor soil-side corrosion rate equation'
|
|
327
|
+
return calculate('tank/bottom-soil-rate-equation', inputs, output_type=BottomSoilRateEquationOutput, context=context)
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
from ..tank_corrosion import BottomProductRateEquation as BottomProductRateEquationInput
|
|
331
|
+
from ..outputs import TankBottomProductRateEquationOutput as BottomProductRateEquationOutput
|
|
332
|
+
|
|
333
|
+
def bottom_product_rate_equation(inputs: BottomProductRateEquationInput, *, context: Context | None = None) -> CalculationResult[BottomProductRateEquationOutput]:
|
|
334
|
+
'AST floor product-side corrosion rate equation'
|
|
335
|
+
return calculate('tank/bottom-product-rate-equation', inputs, output_type=BottomProductRateEquationOutput, context=context)
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
from ..tank_corrosion import BottomResistivity as BottomSoilResistivityFactorInput
|
|
339
|
+
from ..outputs import TankBottomSoilResistivityFactorOutput as BottomSoilResistivityFactorOutput
|
|
340
|
+
|
|
341
|
+
def bottom_soil_resistivity_factor(inputs: BottomSoilResistivityFactorInput, *, context: Context | None = None) -> CalculationResult[BottomSoilResistivityFactorOutput]:
|
|
342
|
+
'AST floor native-soil resistivity factor'
|
|
343
|
+
return calculate('tank/bottom-soil-resistivity-factor', inputs, output_type=BottomSoilResistivityFactorOutput, context=context)
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
from ..tank_corrosion import BottomPad as BottomPadFactorInput
|
|
347
|
+
from ..outputs import TankBottomPadFactorOutput as BottomPadFactorOutput
|
|
348
|
+
|
|
349
|
+
def bottom_pad_factor(inputs: BottomPadFactorInput, *, context: Context | None = None) -> CalculationResult[BottomPadFactorOutput]:
|
|
350
|
+
'AST floor foundation pad factor'
|
|
351
|
+
return calculate('tank/bottom-pad-factor', inputs, output_type=BottomPadFactorOutput, context=context)
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
from ..tank_corrosion import BottomDrainage as BottomDrainageFactorInput
|
|
355
|
+
from ..outputs import TankBottomDrainageFactorOutput as BottomDrainageFactorOutput
|
|
356
|
+
|
|
357
|
+
def bottom_drainage_factor(inputs: BottomDrainageFactorInput, *, context: Context | None = None) -> CalculationResult[BottomDrainageFactorOutput]:
|
|
358
|
+
'AST floor drainage factor'
|
|
359
|
+
return calculate('tank/bottom-drainage-factor', inputs, output_type=BottomDrainageFactorOutput, context=context)
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
from ..tank_corrosion import BottomCP as BottomCpFactorInput
|
|
363
|
+
from ..outputs import TankBottomCpFactorOutput as BottomCpFactorOutput
|
|
364
|
+
|
|
365
|
+
def bottom_cp_factor(inputs: BottomCpFactorInput, *, context: Context | None = None) -> CalculationResult[BottomCpFactorOutput]:
|
|
366
|
+
'AST floor cathodic protection factor with inspection credit gate'
|
|
367
|
+
return calculate('tank/bottom-cp-factor', inputs, output_type=BottomCpFactorOutput, context=context)
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
from ..tank_corrosion import BottomType as BottomTypeFactorInput
|
|
371
|
+
from ..outputs import TankBottomTypeFactorOutput as BottomTypeFactorOutput
|
|
372
|
+
|
|
373
|
+
def bottom_type_factor(inputs: BottomTypeFactorInput, *, context: Context | None = None) -> CalculationResult[BottomTypeFactorOutput]:
|
|
374
|
+
'AST floor construction factor'
|
|
375
|
+
return calculate('tank/bottom-type-factor', inputs, output_type=BottomTypeFactorOutput, context=context)
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
from ..tank_corrosion import BottomTemperature as BottomTemperatureFactorInput
|
|
379
|
+
from ..outputs import TankBottomTemperatureFactorOutput as BottomTemperatureFactorOutput
|
|
380
|
+
|
|
381
|
+
def bottom_temperature_factor(inputs: BottomTemperatureFactorInput, *, context: Context | None = None) -> CalculationResult[BottomTemperatureFactorOutput]:
|
|
382
|
+
'AST floor soil and product temperature factor'
|
|
383
|
+
return calculate('tank/bottom-temperature-factor', inputs, output_type=BottomTemperatureFactorOutput, context=context)
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
from ..tank_corrosion import BottomProductCondition as BottomProductConditionFactorInput
|
|
387
|
+
from ..outputs import TankBottomProductConditionFactorOutput as BottomProductConditionFactorOutput
|
|
388
|
+
|
|
389
|
+
def bottom_product_condition_factor(inputs: BottomProductConditionFactorInput, *, context: Context | None = None) -> CalculationResult[BottomProductConditionFactorOutput]:
|
|
390
|
+
'AST floor product wetness factor'
|
|
391
|
+
return calculate('tank/bottom-product-condition-factor', inputs, output_type=BottomProductConditionFactorOutput, context=context)
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
from ..tank_corrosion import BottomSteamCoil as BottomSteamCoilFactorInput
|
|
395
|
+
from ..outputs import TankBottomSteamCoilFactorOutput as BottomSteamCoilFactorOutput
|
|
396
|
+
|
|
397
|
+
def bottom_steam_coil_factor(inputs: BottomSteamCoilFactorInput, *, context: Context | None = None) -> CalculationResult[BottomSteamCoilFactorOutput]:
|
|
398
|
+
'AST floor steam coil factor'
|
|
399
|
+
return calculate('tank/bottom-steam-coil-factor', inputs, output_type=BottomSteamCoilFactorOutput, context=context)
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
from ..tank_corrosion import BottomWaterDraw as BottomWaterDrawFactorInput
|
|
403
|
+
from ..outputs import TankBottomWaterDrawFactorOutput as BottomWaterDrawFactorOutput
|
|
404
|
+
|
|
405
|
+
def bottom_water_draw_factor(inputs: BottomWaterDrawFactorInput, *, context: Context | None = None) -> CalculationResult[BottomWaterDrawFactorOutput]:
|
|
406
|
+
'AST floor qualified regular water draw factor'
|
|
407
|
+
return calculate('tank/bottom-water-draw-factor', inputs, output_type=BottomWaterDrawFactorOutput, context=context)
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
from ..tank_corrosion import BottomCombine as BottomCorrosionRateCombineInput
|
|
411
|
+
from ..outputs import TankBottomCorrosionRateCombineOutput as BottomCorrosionRateCombineOutput
|
|
412
|
+
|
|
413
|
+
def bottom_corrosion_rate_combine(inputs: BottomCorrosionRateCombineInput, *, context: Context | None = None) -> CalculationResult[BottomCorrosionRateCombineOutput]:
|
|
414
|
+
'AST floor two-sided corrosion-rate combination'
|
|
415
|
+
return calculate('tank/bottom-corrosion-rate-combine', inputs, output_type=BottomCorrosionRateCombineOutput, context=context)
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
from ..tank_corrosion import BottomCorrosion as BottomCorrosionAssessmentInput
|
|
419
|
+
from ..outputs import TankBottomCorrosionAssessmentOutput as BottomCorrosionAssessmentOutput
|
|
420
|
+
|
|
421
|
+
def bottom_corrosion_assessment(inputs: BottomCorrosionAssessmentInput, *, context: Context | None = None) -> CalculationResult[BottomCorrosionAssessmentOutput]:
|
|
422
|
+
'AST floor soil and product corrosion assessment'
|
|
423
|
+
return calculate('tank/bottom-corrosion-assessment', inputs, output_type=BottomCorrosionAssessmentOutput, context=context)
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
from ..tank_thinning import BottomMinimumThickness as BottomMinimumThicknessInput
|
|
427
|
+
from ..outputs import TankBottomMinimumThicknessOutput as BottomMinimumThicknessOutput
|
|
428
|
+
|
|
429
|
+
def bottom_minimum_thickness(inputs: BottomMinimumThicknessInput, *, context: Context | None = None) -> CalculationResult[BottomMinimumThicknessOutput]:
|
|
430
|
+
'AST floor minimum thickness for thinning calculation'
|
|
431
|
+
return calculate('tank/bottom-minimum-thickness', inputs, output_type=BottomMinimumThicknessOutput, context=context)
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
from ..tank_thinning import BottomWallParameter as BottomWallParameterInput
|
|
435
|
+
from ..outputs import TankBottomWallParameterOutput as BottomWallParameterOutput
|
|
436
|
+
|
|
437
|
+
def bottom_wall_parameter(inputs: BottomWallParameterInput, *, context: Context | None = None) -> CalculationResult[BottomWallParameterOutput]:
|
|
438
|
+
'AST floor remaining thickness and Art parameter'
|
|
439
|
+
return calculate('tank/bottom-wall-parameter', inputs, output_type=BottomWallParameterOutput, context=context)
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
from ..tank_thinning import BottomInspectionSelection as BottomInspectionSelectionInput
|
|
443
|
+
from ..outputs import TankBottomInspectionSelectionOutput as BottomInspectionSelectionOutput
|
|
444
|
+
|
|
445
|
+
def bottom_inspection_selection(inputs: BottomInspectionSelectionInput, *, context: Context | None = None) -> CalculationResult[BottomInspectionSelectionOutput]:
|
|
446
|
+
'Select one AST floor inspection credit'
|
|
447
|
+
return calculate('tank/bottom-inspection-selection', inputs, output_type=BottomInspectionSelectionOutput, context=context)
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
from ..tank_thinning import BottomBaseDamage as BottomThinningBaseInput
|
|
451
|
+
from ..outputs import TankBottomThinningBaseOutput as BottomThinningBaseOutput
|
|
452
|
+
|
|
453
|
+
def bottom_thinning_base(inputs: BottomThinningBaseInput, *, context: Context | None = None) -> CalculationResult[BottomThinningBaseOutput]:
|
|
454
|
+
'AST floor tabulated base thinning damage factor'
|
|
455
|
+
return calculate('tank/bottom-thinning-base', inputs, output_type=BottomThinningBaseOutput, context=context)
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
from ..tank_thinning import BottomAdjustments as BottomThinningAdjustmentFactorsInput
|
|
459
|
+
from ..outputs import TankBottomThinningAdjustmentFactorsOutput as BottomThinningAdjustmentFactorsOutput
|
|
460
|
+
|
|
461
|
+
def bottom_thinning_adjustment_factors(inputs: BottomThinningAdjustmentFactorsInput, *, context: Context | None = None) -> CalculationResult[BottomThinningAdjustmentFactorsOutput]:
|
|
462
|
+
'AST floor construction maintenance and settlement factors'
|
|
463
|
+
return calculate('tank/bottom-thinning-adjustment-factors', inputs, output_type=BottomThinningAdjustmentFactorsOutput, context=context)
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
from ..tank_thinning import BottomThinning as BottomThinningAssessmentInput
|
|
467
|
+
from ..outputs import TankBottomThinningAssessmentOutput as BottomThinningAssessmentOutput
|
|
468
|
+
|
|
469
|
+
def bottom_thinning_assessment(inputs: BottomThinningAssessmentInput, *, context: Context | None = None) -> CalculationResult[BottomThinningAssessmentOutput]:
|
|
470
|
+
'AST floor dedicated thinning damage assessment'
|
|
471
|
+
return calculate('tank/bottom-thinning-assessment', inputs, output_type=BottomThinningAssessmentOutput, context=context)
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
from ..tank_thinning import BottomCorrosionThinning as BottomCorrosionThinningAssessmentInput
|
|
475
|
+
from ..outputs import TankBottomCorrosionThinningAssessmentOutput as BottomCorrosionThinningAssessmentOutput
|
|
476
|
+
|
|
477
|
+
def bottom_corrosion_thinning_assessment(inputs: BottomCorrosionThinningAssessmentInput, *, context: Context | None = None) -> CalculationResult[BottomCorrosionThinningAssessmentOutput]:
|
|
478
|
+
'AST floor two-sided corrosion through thinning damage'
|
|
479
|
+
return calculate('tank/bottom-corrosion-thinning-assessment', inputs, output_type=BottomCorrosionThinningAssessmentOutput, context=context)
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
from ..tank_thinning import BottomCorrosionRisk as BottomCorrosionRiskAssessmentInput
|
|
483
|
+
from ..outputs import TankBottomCorrosionRiskAssessmentOutput as BottomCorrosionRiskAssessmentOutput
|
|
484
|
+
|
|
485
|
+
def bottom_corrosion_risk_assessment(inputs: BottomCorrosionRiskAssessmentInput, *, context: Context | None = None) -> CalculationResult[BottomCorrosionRiskAssessmentOutput]:
|
|
486
|
+
'AST floor corrosion through source consequence and annual financial risk'
|
|
487
|
+
return calculate('tank/bottom-corrosion-risk-assessment', inputs, output_type=BottomCorrosionRiskAssessmentOutput, context=context)
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
__all__ = ['AtmosphereInput', 'BottomAdjustmentsInput', 'BottomCPInput', 'BottomCorrosionInput', 'BottomCorrosionThinningInput', 'BottomDrainageInput', 'BottomEconomicsInput', 'BottomFinancialInput', 'Tank_thinningBottomInspectionSelectionInput', 'Tank_thinningBottomMinimumThicknessInput', 'BottomPadInput', 'BottomProductConditionInput', 'BottomSourceInput', 'BottomSteamCoilInput', 'BottomTemperatureInput', 'BottomThinningBasisInput', 'BottomWaterDrawInput', 'CorrelatedJetPoolInput', 'FlammableOutcomeInput', 'PoolBurningInput', 'ShellCaseInput', 'ShellEconomicsInput', 'ShellFinancialInput', 'ShellSourceInput', 'TankRepairBasisInput', 'ToxicCloudAreaInput', 'fluid_table', 'FluidTableInput', 'FluidTableOutput', 'soil_table', 'SoilTableInput', 'SoilTableOutput', 'soil_water_conductivity', 'SoilWaterConductivityInput', 'SoilWaterConductivityOutput', 'fluid_conductivity', 'FluidConductivityInput', 'FluidConductivityOutput', 'seepage_velocity', 'SeepageVelocityInput', 'SeepageVelocityOutput', 'bottom_hole_count', 'BottomHoleCountInput', 'BottomHoleCountOutput', 'bottom_inventory', 'BottomInventoryInput', 'BottomInventoryOutput', 'shell_course_inventory', 'ShellCourseInventoryInput', 'ShellCourseInventoryOutput', 'shell_flow', 'ShellFlowInput', 'ShellFlowOutput', 'bottom_flow', 'BottomFlowInput', 'BottomFlowOutput', 'shell_detection_time', 'ShellDetectionTimeInput', 'ShellDetectionTimeOutput', 'bottom_detection_time', 'BottomDetectionTimeInput', 'BottomDetectionTimeOutput', 'release_volume', 'ReleaseVolumeInput', 'ReleaseVolumeOutput', 'environment_cost_table', 'EnvironmentCostTableInput', 'EnvironmentCostTableOutput', 'surface_spill_partition', 'SurfaceSpillPartitionInput', 'SurfaceSpillPartitionOutput', 'groundwater_arrival', 'GroundwaterArrivalInput', 'GroundwaterArrivalOutput', 'subsurface_spill_partition', 'SubsurfaceSpillPartitionInput', 'SubsurfaceSpillPartitionOutput', 'shell_environment_cost', 'ShellEnvironmentCostInput', 'ShellEnvironmentCostOutput', 'bottom_environment_cost', 'BottomEnvironmentCostInput', 'BottomEnvironmentCostOutput', 'bottom_repair_cost', 'BottomRepairCostInput', 'BottomRepairCostOutput', 'generic_frequency', 'GenericFrequencyInput', 'GenericFrequencyOutput', 'component_outage', 'ComponentOutageInput', 'ComponentOutageOutput', 'bottom_financial_consequence', 'BottomFinancialConsequenceInput', 'BottomFinancialConsequenceOutput', 'shell_financial_consequence', 'ShellFinancialConsequenceInput', 'ShellFinancialConsequenceOutput', 'bottom_risk_assessment', 'BottomRiskAssessmentInput', 'BottomRiskAssessmentOutput', 'shell_risk_assessment', 'ShellRiskAssessmentInput', 'ShellRiskAssessmentOutput', 'shell_hole_sizes', 'ShellHoleSizesInput', 'ShellHoleSizesOutput', 'bottom_hole_sizes', 'BottomHoleSizesInput', 'BottomHoleSizesOutput', 'shell_source_assessment', 'ShellSourceAssessmentInput', 'ShellSourceAssessmentOutput', 'bottom_source_assessment', 'BottomSourceAssessmentInput', 'BottomSourceAssessmentOutput', 'bottom_integrated_assessment', 'BottomIntegratedAssessmentInput', 'BottomIntegratedAssessmentOutput', 'diked_pool_consequence', 'DikedPoolConsequenceInput', 'DikedPoolConsequenceOutput', 'shell_level2_case', 'ShellLevel2CaseInput', 'ShellLevel2CaseOutput', 'shell_level2_summary', 'ShellLevel2SummaryInput', 'ShellLevel2SummaryOutput', 'shell_integrated_assessment', 'ShellIntegratedAssessmentInput', 'ShellIntegratedAssessmentOutput', 'bottom_base_corrosion_rate', 'BottomBaseCorrosionRateInput', 'BottomBaseCorrosionRateOutput', 'bottom_soil_rate_equation', 'BottomSoilRateEquationInput', 'BottomSoilRateEquationOutput', 'bottom_product_rate_equation', 'BottomProductRateEquationInput', 'BottomProductRateEquationOutput', 'bottom_soil_resistivity_factor', 'BottomSoilResistivityFactorInput', 'BottomSoilResistivityFactorOutput', 'bottom_pad_factor', 'BottomPadFactorInput', 'BottomPadFactorOutput', 'bottom_drainage_factor', 'BottomDrainageFactorInput', 'BottomDrainageFactorOutput', 'bottom_cp_factor', 'BottomCpFactorInput', 'BottomCpFactorOutput', 'bottom_type_factor', 'BottomTypeFactorInput', 'BottomTypeFactorOutput', 'bottom_temperature_factor', 'BottomTemperatureFactorInput', 'BottomTemperatureFactorOutput', 'bottom_product_condition_factor', 'BottomProductConditionFactorInput', 'BottomProductConditionFactorOutput', 'bottom_steam_coil_factor', 'BottomSteamCoilFactorInput', 'BottomSteamCoilFactorOutput', 'bottom_water_draw_factor', 'BottomWaterDrawFactorInput', 'BottomWaterDrawFactorOutput', 'bottom_corrosion_rate_combine', 'BottomCorrosionRateCombineInput', 'BottomCorrosionRateCombineOutput', 'bottom_corrosion_assessment', 'BottomCorrosionAssessmentInput', 'BottomCorrosionAssessmentOutput', 'bottom_minimum_thickness', 'BottomMinimumThicknessInput', 'BottomMinimumThicknessOutput', 'bottom_wall_parameter', 'BottomWallParameterInput', 'BottomWallParameterOutput', 'bottom_inspection_selection', 'BottomInspectionSelectionInput', 'BottomInspectionSelectionOutput', 'bottom_thinning_base', 'BottomThinningBaseInput', 'BottomThinningBaseOutput', 'bottom_thinning_adjustment_factors', 'BottomThinningAdjustmentFactorsInput', 'BottomThinningAdjustmentFactorsOutput', 'bottom_thinning_assessment', 'BottomThinningAssessmentInput', 'BottomThinningAssessmentOutput', 'bottom_corrosion_thinning_assessment', 'BottomCorrosionThinningAssessmentInput', 'BottomCorrosionThinningAssessmentOutput', 'bottom_corrosion_risk_assessment', 'BottomCorrosionRiskAssessmentInput', 'BottomCorrosionRiskAssessmentOutput']
|