Vertical Cylinder
Horizontal Cylinder
Rectangular Tank
Spherical Vessel
Leave empty for total capacity calculation only.
Calculation Results:
Total Capacity:0 Liters
Liquid Content:0 Liters
Cubic Meters (Total):0 m³
How to Calculate Vessel Volume
Calculating the volume of industrial vessels is a critical task in chemical engineering, logistics, and storage management. Whether you are dealing with a vertical silo, a horizontal fuel tank, or a spherical pressure vessel, knowing the exact capacity helps prevent overflows and manage inventory efficiently.
Horizontal Cylinder: This requires a complex geometric segment calculation if you are measuring partial fill levels.
Realistic Calculation Example
Imagine a vertical cylindrical storage tank with a diameter of 4 meters and a height of 10 meters. The process to find the total capacity in liters is as follows:
Calculate the Radius: 4m / 2 = 2 meters.
Calculate Surface Area: 3.14159 × (2m)² = 12.566 m².
Calculate Volume in m³: 12.566 m² × 10m = 125.66 m³.
Convert to Liters: 125.66 × 1,000 = 125,660 Liters.
Understanding Partial Fill Volume
Measuring the total capacity is simple, but measuring the actual liquid content when the tank is only partially full is more challenging, especially in horizontal vessels. For a horizontal cylinder, the volume is not linear with the height of the liquid. Our calculator uses the circular segment formula to determine the exact liquid volume based on your current fill depth.
function updateVesselInputs() {
var type = document.getElementById("vesselType").value;
var d1C = document.getElementById("dim1Container");
var d2C = document.getElementById("dim2Container");
var d3C = document.getElementById("dim3Container");
var l1 = document.getElementById("labelDim1");
var l2 = document.getElementById("labelDim2");
var l3 = document.getElementById("labelDim3");
// Reset visibility
d1C.style.display = "block";
d2C.style.display = "block";
d3C.style.display = "none";
if (type === "verticalCylinder") {
l1.innerText = "Diameter (m)";
l2.innerText = "Height (m)";
} else if (type === "horizontalCylinder") {
l1.innerText = "Diameter (m)";
l2.innerText = "Length (m)";
} else if (type === "rectangular") {
l1.innerText = "Length (m)";
l2.innerText = "Height (m)";
d3C.style.display = "block";
l3.innerText = "Width (m)";
} else if (type === "sphere") {
l1.innerText = "Diameter (m)";
d2C.style.display = "none";
}
}
function calculateVesselVolume() {
var type = document.getElementById("vesselType").value;
var d1 = parseFloat(document.getElementById("dim1").value) || 0;
var d2 = parseFloat(document.getElementById("dim2").value) || 0;
var d3 = parseFloat(document.getElementById("dim3").value) || 0;
var h = parseFloat(document.getElementById("fillLevel").value) || 0;
var totalVolM3 = 0;
var filledVolM3 = 0;
if (d1 d2) h = d2;
filledVolM3 = Math.PI * Math.pow(radius, 2) * h;
}
else if (type === "horizontalCylinder") {
var radius = d1 / 2;
var length = d2;
totalVolM3 = Math.PI * Math.pow(radius, 2) * length;
if (h > d1) h = d1;
if (h > 0) {
var cosPart = (radius – h) / radius;
var area = Math.pow(radius, 2) * Math.acos(cosPart) – (radius – h) * Math.sqrt(2 * radius * h – Math.pow(h, 2));
filledVolM3 = area * length;
}
}
else if (type === "rectangular") {
totalVolM3 = d1 * d2 * d3;
if (h > d2) h = d2;
filledVolM3 = d1 * d3 * h;
}
else if (type === "sphere") {
var radius = d1 / 2;
totalVolM3 = (4/3) * Math.PI * Math.pow(radius, 3);
if (h > d1) h = d1;
if (h > 0) {
filledVolM3 = (Math.PI * Math.pow(h, 2) / 3) * (3 * radius – h);
}
}
// Results formatting
document.getElementById("vesselResult").style.display = "block";
document.getElementById("totalVol").innerText = (totalVolM3 * 1000).toLocaleString(undefined, {maximumFractionDigits: 2});
document.getElementById("filledVol").innerText = h > 0 ? (filledVolM3 * 1000).toLocaleString(undefined, {maximumFractionDigits: 2}) : "N/A";
document.getElementById("m3Vol").innerText = totalVolM3.toLocaleString(undefined, {maximumFractionDigits: 3});
}