Class TankMechanicalDesign

java.lang.Object
neqsim.process.mechanicaldesign.MechanicalDesign
neqsim.process.mechanicaldesign.tank.TankMechanicalDesign
All Implemented Interfaces:
Serializable

public class TankMechanicalDesign extends MechanicalDesign
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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • STEEL_DENSITY

      private static final double STEEL_DENSITY
      Steel density [kg/m³].
      See Also:
    • GRAVITY

      private static final double GRAVITY
      Gravity constant [m/s²].
      See Also:
    • DESIGN_PRESSURE_MARGIN

      private static final double DESIGN_PRESSURE_MARGIN
      Design pressure margin factor.
      See Also:
    • CORROSION_ALLOWANCE

      private static final double CORROSION_ALLOWANCE
      Corrosion allowance [mm].
      See Also:
    • MIN_SHELL_THICKNESS

      private static final double MIN_SHELL_THICKNESS
      Minimum shell thickness [mm] per API 650.
      See Also:
    • MIN_BOTTOM_THICKNESS

      private static final double MIN_BOTTOM_THICKNESS
      Minimum bottom thickness [mm] per API 650.
      See Also:
    • MIN_ROOF_THICKNESS

      private static final double MIN_ROOF_THICKNESS
      Minimum roof thickness [mm] per API 650.
      See Also:
    • ALLOWABLE_STRESS_A36

      private static final double ALLOWABLE_STRESS_A36
      Allowable stress for A36 steel [MPa].
      See Also:
    • JOINT_EFFICIENCY

      private static final double JOINT_EFFICIENCY
      Joint efficiency for butt-welded joints.
      See Also:
    • tankType

      Tank type.
    • roofType

      Roof type.
    • tankDiameter

      private double tankDiameter
      Tank nominal diameter [m].
    • tankHeight

      private double tankHeight
      Tank height (shell height) [m].
    • designLiquidLevel

      private double designLiquidLevel
      Design liquid level [m].
    • numberOfCourses

      private int numberOfCourses
      Number of shell courses.
    • courseHeight

      private double courseHeight
      Shell course height [m] - typically 2.4m (8 ft).
    • shellThicknesses

      private double[] shellThicknesses
      Shell thicknesses by course [mm].
    • bottomThickness

      private double bottomThickness
      Bottom plate thickness [mm].
    • roofThickness

      private double roofThickness
      Roof plate thickness [mm].
    • designPressure

      private double designPressure
      Design pressure [bara].
    • designTemperature

      private double designTemperature
      Design temperature [°C].
    • designSpecificGravity

      private double designSpecificGravity
      Design specific gravity.
    • shellWeight

      private double shellWeight
      Shell weight [kg].
    • bottomWeight

      private double bottomWeight
      Bottom weight [kg].
    • roofWeight

      private double roofWeight
      Roof weight [kg].
    • appurtenancesWeight

      private double appurtenancesWeight
      Appurtenances weight (nozzles, manholes, etc.) [kg].
    • structuralWeight

      private double structuralWeight
      Structural weight (wind girders, rafters, columns) [kg].
    • foundationLoad

      private double foundationLoad
      Foundation load (tank + contents) [kN].
    • nominalCapacity

      private double nominalCapacity
      Tank capacity [m³].
    • workingCapacity

      private double workingCapacity
      Working capacity [m³].
    • numberOfNozzles

      private int numberOfNozzles
      Number of shell nozzles.
    • numberOfManholes

      private int numberOfManholes
      Number of manholes.
    • hasFloatingRoof

      private boolean hasFloatingRoof
      Has floating roof.
  • Constructor Details

    • TankMechanicalDesign

      public TankMechanicalDesign(ProcessEquipmentInterface equipment)
      Constructor for TankMechanicalDesign.
      Parameters:
      equipment - the tank equipment
  • Method Details

    • calcDesign

      public void calcDesign()

      calcDesign.

      Overrides:
      calcDesign in class MechanicalDesign
    • 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

      public TankMechanicalDesign.TankType getTankType()
      Get the tank type.
      Returns:
      tank type
    • setTankType

      public void setTankType(TankMechanicalDesign.TankType tankType)
      Set the tank type.
      Parameters:
      tankType - tank type to set
    • getRoofType

      public TankMechanicalDesign.RoofType getRoofType()
      Get the roof type.
      Returns:
      roof type
    • 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

      public void displayResults()

      displayResults.

      Overrides:
      displayResults in class MechanicalDesign