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.
Files changed (139) hide show
  1. api581/__init__.py +80 -0
  2. api581/_amine_tables.py +105 -0
  3. api581/_h2sh2_tables.py +161 -0
  4. api581/_slabx_worker.py +174 -0
  5. api581/_sulfidic_tables.py +517 -0
  6. api581/_sulfuric_tables.py +328 -0
  7. api581/acid_sour_water.py +238 -0
  8. api581/acscc_screening.py +88 -0
  9. api581/alkaline_sour_water.py +267 -0
  10. api581/amine_corrosion.py +277 -0
  11. api581/amine_screening.py +103 -0
  12. api581/api/__init__.py +4 -0
  13. api581/api/api520.py +88 -0
  14. api581/api/bundle.py +121 -0
  15. api581/api/consequence.py +102 -0
  16. api581/api/damage.py +1831 -0
  17. api581/api/dispersion.py +121 -0
  18. api581/api/effects.py +318 -0
  19. api581/api/events.py +96 -0
  20. api581/api/financial.py +115 -0
  21. api581/api/frequency.py +40 -0
  22. api581/api/inspection.py +96 -0
  23. api581/api/level1.py +238 -0
  24. api581/api/level2.py +74 -0
  25. api581/api/planning.py +17 -0
  26. api581/api/prd.py +190 -0
  27. api581/api/properties.py +130 -0
  28. api581/api/release.py +252 -0
  29. api581/api/reliability.py +40 -0
  30. api581/api/risk.py +71 -0
  31. api581/api/tank.py +490 -0
  32. api581/api520.py +205 -0
  33. api581/area_contribution.py +72 -0
  34. api581/blast.py +232 -0
  35. api581/brittle.py +205 -0
  36. api581/bundle.py +300 -0
  37. api581/catalog.py +442 -0
  38. api581/caustic_screening.py +103 -0
  39. api581/clad_thinning.py +146 -0
  40. api581/clscc_screening.py +55 -0
  41. api581/co2_corrosion.py +313 -0
  42. api581/co2_screening.py +205 -0
  43. api581/consequences.py +250 -0
  44. api581/contracts.py +1038 -0
  45. api581/cooling_selection.py +204 -0
  46. api581/cooling_water.py +305 -0
  47. api581/core.py +126 -0
  48. api581/corrosion_rate.py +38 -0
  49. api581/cost_tables.py +175 -0
  50. api581/cracking.py +74 -0
  51. api581/data/coverage.json +21361 -0
  52. api581/data/digital-twin.schema.json +538 -0
  53. api581/data/direct-test-queue.json +7 -0
  54. api581/data/native-engine-evidence.json +44 -0
  55. api581/data/python-api.schema.json +92706 -0
  56. api581/data/reference-fixture-evidence.json +2956 -0
  57. api581/data/scope-boundaries.schema.json +58 -0
  58. api581/data/software-test-evidence.json +4278 -0
  59. api581/data/standard-metadata.json +1328 -0
  60. api581/data/standard.schema.json +233 -0
  61. api581/data/supporting-text-review.json +1319 -0
  62. api581/digital_twin.py +491 -0
  63. api581/dispersion.py +45 -0
  64. api581/effects.py +232 -0
  65. api581/evaporation.py +181 -0
  66. api581/evidence.py +81 -0
  67. api581/external_corrosion.py +148 -0
  68. api581/external_cracking.py +63 -0
  69. api581/fatigue.py +56 -0
  70. api581/fireball.py +163 -0
  71. api581/flash_pool.py +111 -0
  72. api581/flash_solver.py +122 -0
  73. api581/groundwater.py +101 -0
  74. api581/h2sh2_corrosion.py +128 -0
  75. api581/hic_screened.py +89 -0
  76. api581/htha.py +45 -0
  77. api581/hydrochloric_acid.py +272 -0
  78. api581/hydrofluoric_acid.py +236 -0
  79. api581/ignition.py +204 -0
  80. api581/inspection_effectiveness.py +601 -0
  81. api581/jet_handoff.py +60 -0
  82. api581/level1.py +311 -0
  83. api581/level1_summary.py +35 -0
  84. api581/level1_toxic.py +313 -0
  85. api581/level1_type1.py +91 -0
  86. api581/level2_summary.py +237 -0
  87. api581/lining.py +173 -0
  88. api581/native_toxic.py +67 -0
  89. api581/outputs.py +5672 -0
  90. api581/oxidation.py +145 -0
  91. api581/pascc_screening.py +78 -0
  92. api581/physical_explosion.py +190 -0
  93. api581/pof.py +207 -0
  94. api581/pool_fire.py +273 -0
  95. api581/portfolio.py +68 -0
  96. api581/prd.py +204 -0
  97. api581/prd_consequences.py +245 -0
  98. api581/prd_history.py +44 -0
  99. api581/py.typed +0 -0
  100. api581/release.py +307 -0
  101. api581/representative_fluids.py +172 -0
  102. api581/result.py +50 -0
  103. api581/risk.py +191 -0
  104. api581/saturation.py +66 -0
  105. api581/scc_mechanisms.py +242 -0
  106. api581/schema.py +45 -0
  107. api581/slabx_adapter.py +261 -0
  108. api581/soil_corrosion.py +191 -0
  109. api581/source_partition.py +169 -0
  110. api581/spatial.py +87 -0
  111. api581/ssc_screening.py +77 -0
  112. api581/standard.py +281 -0
  113. api581/storage.py +42 -0
  114. api581/sulfidic_corrosion.py +197 -0
  115. api581/sulfuric_acid.py +209 -0
  116. api581/tank.py +260 -0
  117. api581/tank_corrosion.py +256 -0
  118. api581/tank_environment.py +186 -0
  119. api581/tank_financial.py +202 -0
  120. api581/tank_integrated.py +51 -0
  121. api581/tank_shell.py +141 -0
  122. api581/tank_source.py +152 -0
  123. api581/tank_thinning.py +204 -0
  124. api581/temper.py +105 -0
  125. api581/thinning.py +172 -0
  126. api581/thinning_conditions.py +212 -0
  127. api581/thinning_history.py +118 -0
  128. api581/thinning_selection.py +81 -0
  129. api581/thinning_type.py +34 -0
  130. api581/toxic_criteria.py +111 -0
  131. api581/toxic_level2.py +233 -0
  132. api581/two_phase_events.py +120 -0
  133. api581/workflow.py +42 -0
  134. api581_engine-0.1.4.dist-info/METADATA +419 -0
  135. api581_engine-0.1.4.dist-info/RECORD +139 -0
  136. api581_engine-0.1.4.dist-info/WHEEL +5 -0
  137. api581_engine-0.1.4.dist-info/licenses/LICENSE +161 -0
  138. api581_engine-0.1.4.dist-info/licenses/NOTICE.md +18 -0
  139. 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']