Class TankHeatTransferModel
java.lang.Object
neqsim.process.equipment.lng.TankHeatTransferModel
- All Implemented Interfaces:
Serializable
Multi-zone heat transfer model for LNG cargo tanks.
Commercial LNG ageing simulators (Cargo Expert, LNGMAP, MACS III) use 4-6 heat transfer zones instead of a single U*A value. Each zone has its own U-value, area, and boundary temperature:
- Bottom slab: contact with double-bottom ballast tanks (sea water temperature)
- Sidewalls: contact with adjacent ballast/void spaces (ambient temperature)
- Roof/dome: exposed to weather deck (ambient + solar gain)
- Cofferdam: shared wall between adjacent cargo tanks (adjacent cargo temperature)
- Internal supports: conduction through support structures
Total heat ingress Q_total = sum_i(U_i * A_i * (T_boundary_i - T_LNG)).
- Version:
- 1.0
- Author:
- NeqSim
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA single heat transfer zone with its own U-value, area, and boundary condition. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final longSerialization version UID.private doubleSolar absorptivity of deck surface (0-1).private TankGeometryOptional tank geometry for auto zone calculation.private doubleWind-enhanced convection factor.List of heat transfer zones. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.TankHeatTransferModel(TankGeometry geometry, double ambientTemperature) Constructor with tank geometry, auto-creates standard zones. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd a custom heat transfer zone.double[]calculateLayerHeatDistribution(double lngTemperature, int numLayers) Calculate heat distribution to layers based on zone positions.doublecalculateTotalHeatIngress(double lngTemperature) Calculate total heat ingress to the LNG.calculateZoneHeatIngress(double lngTemperature) Calculate heat ingress per zone.private voidcreateStandardZones(TankGeometry geometry, double ambientTemp) Create standard heat transfer zones from tank geometry.doubleGet solar absorptivity.Get tank geometry.doubleGet wind convection factor.getZones()Get the list of zones.voidsetSolarAbsorptivity(double solarAbsorptivity) Set solar absorptivity.voidsetWindConvectionFactor(double factor) Set wind convection factor.voidupdateBoundaryConditions(double ambientTemperature, double solarRadiation, double seaWaterTemperature) Update boundary temperatures for time-varying conditions.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
zones
List of heat transfer zones. -
tankGeometry
Optional tank geometry for auto zone calculation. -
solarAbsorptivity
private double solarAbsorptivitySolar absorptivity of deck surface (0-1). Typical: 0.3-0.6 for painted steel. -
windConvectionFactor
private double windConvectionFactorWind-enhanced convection factor. Applied to roof/exposed zones.
-
-
Constructor Details
-
TankHeatTransferModel
public TankHeatTransferModel()Default constructor. -
TankHeatTransferModel
Constructor with tank geometry, auto-creates standard zones.- Parameters:
geometry- tank geometry definitionambientTemperature- ambient air/sea temperature (K)
-
-
Method Details
-
createStandardZones
Create standard heat transfer zones from tank geometry.- Parameters:
geometry- tank geometryambientTemp- ambient temperature (K)
-
addZone
Add a custom heat transfer zone.- Parameters:
name- zone nameuValue- overall heat transfer coefficient (W/(m2*K))area- heat transfer area (m2)boundaryTemperature- boundary temperature (K)
-
calculateTotalHeatIngress
public double calculateTotalHeatIngress(double lngTemperature) Calculate total heat ingress to the LNG.- Parameters:
lngTemperature- current LNG temperature (K)- Returns:
- total heat ingress (W)
-
calculateZoneHeatIngress
-
calculateLayerHeatDistribution
public double[] calculateLayerHeatDistribution(double lngTemperature, int numLayers) Calculate heat distribution to layers based on zone positions.Bottom zone heat goes primarily to bottom layer, sidewall heat distributed by wetted area fraction, roof heat goes to top layer via vapor space.
- Parameters:
lngTemperature- bulk LNG temperature (K)numLayers- number of liquid layers- Returns:
- array of heat per layer (W), index 0 = bottom
-
updateBoundaryConditions
public void updateBoundaryConditions(double ambientTemperature, double solarRadiation, double seaWaterTemperature) Update boundary temperatures for time-varying conditions.- Parameters:
ambientTemperature- new ambient temperature (K)solarRadiation- solar radiation on deck (W/m2)seaWaterTemperature- sea water temperature (K)
-
getZones
Get the list of zones.- Returns:
- list of heat transfer zones
-
getSolarAbsorptivity
public double getSolarAbsorptivity()Get solar absorptivity.- Returns:
- absorptivity (0-1)
-
setSolarAbsorptivity
public void setSolarAbsorptivity(double solarAbsorptivity) Set solar absorptivity.- Parameters:
solarAbsorptivity- absorptivity (0-1)
-
getWindConvectionFactor
public double getWindConvectionFactor()Get wind convection factor.- Returns:
- convection factor
-
setWindConvectionFactor
public void setWindConvectionFactor(double factor) Set wind convection factor.- Parameters:
factor- convection enhancement factor
-
getTankGeometry
-