Class TankMechanicalDesign
java.lang.Object
neqsim.process.mechanicaldesign.MechanicalDesign
neqsim.process.mechanicaldesign.tank.TankMechanicalDesign
- All Implemented Interfaces:
Serializable
Mechanical design calculations for storage tanks per API 650/620.
This class provides sizing and design calculations for storage tanks based on:
- API 650 - Welded Tanks for Oil Storage (atmospheric pressure)
- API 620 - Design and Construction of Large, Welded, Low-pressure Storage Tanks
Calculations include:
- Shell course thicknesses based on hydrostatic head
- Bottom plate thickness
- Roof design (cone, dome, floating)
- Wind and seismic loads
- Appurtenance weights (nozzles, manholes, ladders, platforms)
- Foundation requirements
- Total weight and footprint
- Version:
- 1.0
- Author:
- NeqSim Development Team
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumRoof type for fixed roof tanks.static enumTank type classification. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleAllowable stress for A36 steel [MPa].private doubleAppurtenances weight (nozzles, manholes, etc.)private doubleBottom plate thickness [mm].private doubleBottom weight [kg].private static final doubleCorrosion allowance [mm].private doubleShell course height [m] - typically 2.4m (8 ft).private static final doubleDesign pressure margin factor.private doubleDesign liquid level [m].private doubleDesign pressure [bara].private doubleDesign specific gravity.private doubleDesign temperature [°C].private doubleFoundation load (tank + contents) [kN].private static final doubleGravity constant [m/s²].private booleanHas floating roof.private static final doubleJoint efficiency for butt-welded joints.private static final doubleMinimum bottom thickness [mm] per API 650.private static final doubleMinimum roof thickness [mm] per API 650.private static final doubleMinimum shell thickness [mm] per API 650.private doubleTank capacity [m³].private intNumber of shell courses.private intNumber of manholes.private intNumber of shell nozzles.private doubleRoof plate thickness [mm].private TankMechanicalDesign.RoofTypeRoof type.private doubleRoof weight [kg].private static final longSerialization version UID.private double[]Shell thicknesses by course [mm].private doubleShell weight [kg].private static final doubleSteel density [kg/m³].private doubleStructural weight (wind girders, rafters, columns) [kg].private doubleTank nominal diameter [m].private doubleTank height (shell height) [m].private TankMechanicalDesign.TankTypeTank type.private doubleWorking capacity [m³].Fields inherited from class MechanicalDesign
costEstimate, designStandard, innerDiameter, maxDesignDuty, maxDesignGassVolumeFlow, maxDesignOilVolumeFlow, maxDesignPower, maxDesignVolumeFlow, maxDesignWaterVolumeFlow, minDesignDuty, minDesignGassVolumeFLow, minDesignOilFLow, minDesignPower, minDesignVolumeFLow, minDesignWaterVolumeFLow, moduleHeight, moduleLength, moduleWidth, outerDiameter, tantanLength, wallThickness, weightElectroInstrument, weightNozzle, weightPiping, weightStructualSteel, weightVessel, weigthInternals, weigthVesselShell -
Constructor Summary
ConstructorsConstructorDescriptionTankMechanicalDesign(ProcessEquipmentInterface equipment) Constructor for TankMechanicalDesign. -
Method Summary
Modifier and TypeMethodDescriptionvoidcalcDesign.private voidCalculate bottom plate thickness.private voidCalculate foundation load requirements.private voidCalculate module dimensions for plot plan.private voidCalculate roof design and thickness.private voidCalculate shell thicknesses for each course per API 650 one-foot method.private voidCalculate all component weights.voiddisplayResults.private doubleEstimate appurtenances weight.private doubleEstimate structural weight (wind girders, etc.).doubleGet the bottom plate thickness.doubleGet the bottom weight.doubleGet the design pressure.doubleGet the design temperature.doubleGet the foundation load.doubleGet the nominal capacity.intGet the number of shell courses.doubleGet the roof plate thickness.Get the roof type.doubleGet the roof weight.double[]Get the shell thicknesses by course.doubleGet the shell weight.doubleGet the tank diameter.doubleGet the tank height.Get the tank type.doubleGet the working capacity.booleanCheck if tank has floating roof.private doubleroundToStandardThickness(double thickness) Round thickness to standard plate sizes.private voidSelect tank type based on size and design pressure.voidsetTankType(TankMechanicalDesign.TankType tankType) Set the tank type.private voidsizeTankGeometry(double volumeM3) Size tank geometry (diameter and height) for given volume.Methods inherited from class MechanicalDesign
addDesignDataSource, equals, getApplicableStandards, getCompanySpecificDesignStandards, getConstrutionMaterial, getCorrosionAllowance, getCostEstimate, getDefaultLiquidDensity, getDefaultLiquidViscosity, getDesignCorrosionAllowance, getDesignDataSources, getDesignJointEfficiency, getDesignLimitData, getDesignMaxPressureLimit, getDesignMaxTemperatureLimit, getDesignMinPressureLimit, getDesignMinTemperatureLimit, getDesignStandard, getInnerDiameter, getJointEfficiency, getLastMarginResult, getMaterialDesignStandard, getMaterialPipeDesignStandard, getMaxAllowableStress, getMaxDesignGassVolumeFlow, getMaxDesignOilVolumeFlow, getMaxDesignPressure, getMaxDesignVolumeFlow, getMaxDesignWaterVolumeFlow, getMaxOperationPressure, getMaxOperationTemperature, getMinDesignGassVolumeFLow, getMinDesignOilFLow, getMinDesignPressure, getMinDesignVolumeFLow, getMinDesignWaterVolumeFLow, getMinOperationPressure, getMinOperationTemperature, getModuleHeight, getModuleLength, getModuleWidth, getOuterDiameter, getPressureMarginFactor, getProcessEquipment, getRecommendedStandards, getResponse, getTantanLength, getTensileStrength, getVolumeTotal, getWallThickness, getWeightElectroInstrument, getWeightNozzle, getWeightPiping, getWeightStructualSteel, getWeightTotal, getWeightVessel, getWeigthInternals, getWeigthVesselShell, hasDesignStandard, hashCode, initMechanicalDesign, isHasSetCompanySpecificDesignStandards, readDesignSpecifications, setCompanySpecificDesignStandards, setConstrutionMaterial, setCorrosionAllowance, setDefaultLiquidDensity, setDefaultLiquidViscosity, setDesign, setDesignDataSource, setDesignDataSources, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandards, setHasSetCompanySpecificDesignStandards, setInnerDiameter, setJointEfficiency, setMaterialDesignStandard, setMaterialPipeDesignStandard, setMaxDesignDuty, setMaxDesignGassVolumeFlow, setMaxDesignOilVolumeFlow, setMaxDesignPower, setMaxDesignVolumeFlow, setMaxDesignWaterVolumeFlow, setMaxOperationPressure, setMaxOperationTemperature, setMinDesignDuty, setMinDesignGassVolumeFLow, setMinDesignOilFLow, setMinDesignPower, setMinDesignVolumeFLow, setMinDesignWaterVolumeFLow, setMinOperationPressure, setMinOperationTemperature, setModuleHeight, setModuleLength, setModuleWidth, setOuterDiameter, setPressureMarginFactor, setProcessEquipment, setTantanLength, setTensileStrength, setWallThickness, setWeightElectroInstrument, setWeightNozzle, setWeightPiping, setWeightStructualSteel, setWeightTotal, setWeightVessel, setWeigthInternals, setWeigthVesselShell, toCompactJson, toJson, validateOperatingEnvelope, validateOperatingEnvelope
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
STEEL_DENSITY
private static final double STEEL_DENSITYSteel density [kg/m³].- See Also:
-
GRAVITY
private static final double GRAVITYGravity constant [m/s²].- See Also:
-
DESIGN_PRESSURE_MARGIN
private static final double DESIGN_PRESSURE_MARGINDesign pressure margin factor.- See Also:
-
CORROSION_ALLOWANCE
private static final double CORROSION_ALLOWANCECorrosion allowance [mm].- See Also:
-
MIN_SHELL_THICKNESS
private static final double MIN_SHELL_THICKNESSMinimum shell thickness [mm] per API 650.- See Also:
-
MIN_BOTTOM_THICKNESS
private static final double MIN_BOTTOM_THICKNESSMinimum bottom thickness [mm] per API 650.- See Also:
-
MIN_ROOF_THICKNESS
private static final double MIN_ROOF_THICKNESSMinimum roof thickness [mm] per API 650.- See Also:
-
ALLOWABLE_STRESS_A36
private static final double ALLOWABLE_STRESS_A36Allowable stress for A36 steel [MPa].- See Also:
-
JOINT_EFFICIENCY
private static final double JOINT_EFFICIENCYJoint efficiency for butt-welded joints.- See Also:
-
tankType
Tank type. -
roofType
Roof type. -
tankDiameter
private double tankDiameterTank nominal diameter [m]. -
tankHeight
private double tankHeightTank height (shell height) [m]. -
designLiquidLevel
private double designLiquidLevelDesign liquid level [m]. -
numberOfCourses
private int numberOfCoursesNumber of shell courses. -
courseHeight
private double courseHeightShell course height [m] - typically 2.4m (8 ft). -
shellThicknesses
private double[] shellThicknessesShell thicknesses by course [mm]. -
bottomThickness
private double bottomThicknessBottom plate thickness [mm]. -
roofThickness
private double roofThicknessRoof plate thickness [mm]. -
designPressure
private double designPressureDesign pressure [bara]. -
designTemperature
private double designTemperatureDesign temperature [°C]. -
designSpecificGravity
private double designSpecificGravityDesign specific gravity. -
shellWeight
private double shellWeightShell weight [kg]. -
bottomWeight
private double bottomWeightBottom weight [kg]. -
roofWeight
private double roofWeightRoof weight [kg]. -
appurtenancesWeight
private double appurtenancesWeightAppurtenances weight (nozzles, manholes, etc.) [kg]. -
structuralWeight
private double structuralWeightStructural weight (wind girders, rafters, columns) [kg]. -
foundationLoad
private double foundationLoadFoundation load (tank + contents) [kN]. -
nominalCapacity
private double nominalCapacityTank capacity [m³]. -
workingCapacity
private double workingCapacityWorking capacity [m³]. -
numberOfNozzles
private int numberOfNozzlesNumber of shell nozzles. -
numberOfManholes
private int numberOfManholesNumber of manholes. -
hasFloatingRoof
private boolean hasFloatingRoofHas floating roof.
-
-
Constructor Details
-
TankMechanicalDesign
Constructor for TankMechanicalDesign.- Parameters:
equipment- the tank equipment
-
-
Method Details
-
calcDesign
-
sizeTankGeometry
private void sizeTankGeometry(double volumeM3) Size tank geometry (diameter and height) for given volume. Optimizes for minimum surface area (economic design).- Parameters:
volumeM3- required volume in m³
-
selectTankType
private void selectTankType()Select tank type based on size and design pressure. -
calculateShellThicknesses
private void calculateShellThicknesses()Calculate shell thicknesses for each course per API 650 one-foot method. -
roundToStandardThickness
private double roundToStandardThickness(double thickness) Round thickness to standard plate sizes.- Parameters:
thickness- calculated thickness in mm- Returns:
- standard plate thickness
-
calculateBottomThickness
private void calculateBottomThickness()Calculate bottom plate thickness. -
calculateRoofDesign
private void calculateRoofDesign()Calculate roof design and thickness. -
calculateWeights
private void calculateWeights()Calculate all component weights. -
estimateAppurtenancesWeight
private double estimateAppurtenancesWeight()Estimate appurtenances weight.- Returns:
- appurtenances weight in kg
-
estimateStructuralWeight
private double estimateStructuralWeight()Estimate structural weight (wind girders, etc.).- Returns:
- structural weight in kg
-
calculateFoundationLoad
private void calculateFoundationLoad()Calculate foundation load requirements. -
calculateModuleDimensions
private void calculateModuleDimensions()Calculate module dimensions for plot plan. -
getTankType
-
setTankType
Set the tank type.- Parameters:
tankType- tank type to set
-
getRoofType
-
getTankDiameter
public double getTankDiameter()Get the tank diameter.- Returns:
- tank diameter in meters
-
getTankHeight
public double getTankHeight()Get the tank height.- Returns:
- tank height in meters
-
getShellThicknesses
public double[] getShellThicknesses()Get the shell thicknesses by course.- Returns:
- array of shell thicknesses in mm
-
getBottomThickness
public double getBottomThickness()Get the bottom plate thickness.- Returns:
- bottom thickness in mm
-
getRoofThickness
public double getRoofThickness()Get the roof plate thickness.- Returns:
- roof thickness in mm
-
getNumberOfCourses
public int getNumberOfCourses()Get the number of shell courses.- Returns:
- number of courses
-
getDesignPressure
public double getDesignPressure()Get the design pressure.- Returns:
- design pressure in bara
-
getDesignTemperature
public double getDesignTemperature()Get the design temperature.- Returns:
- design temperature in °C
-
getNominalCapacity
public double getNominalCapacity()Get the nominal capacity.- Returns:
- nominal capacity in m³
-
getWorkingCapacity
public double getWorkingCapacity()Get the working capacity.- Returns:
- working capacity in m³
-
getShellWeight
public double getShellWeight()Get the shell weight.- Returns:
- shell weight in kg
-
getBottomWeight
public double getBottomWeight()Get the bottom weight.- Returns:
- bottom weight in kg
-
getRoofWeight
public double getRoofWeight()Get the roof weight.- Returns:
- roof weight in kg
-
getFoundationLoad
public double getFoundationLoad()Get the foundation load.- Returns:
- foundation load in kN (tank + contents)
-
hasFloatingRoof
public boolean hasFloatingRoof()Check if tank has floating roof.- Returns:
- true if floating roof
-
displayResults
-