Engineering tool for generating filling curves of horizontal and vertical storage tanks with multiple vessel head geometries.
TankCurves calculates the relationship between liquid level and contained volume and provides graphical visualization, tabular results, Excel export, and built-in volume verification.
- Horizontal tanks
- Vertical tanks
- Flat heads
- Hemispherical heads
- Elliptical heads (2:1)
- Torospherical heads (DIN 28011)
- Torospherical heads (DIN 28013)
- Numerical filling curve calculation
- Analytical and engineering reference volume validation
- Automatic deviation reporting
- Internal geometry calculation from wall thickness
- Metric and Imperial unit support
- Vessel geometry preview
- Head geometry visualization
- Interactive filling curve plotting
- Level-volume lookup table
- Excel export (.xlsx)
- Geometry summary export
- Filling curve export
- Interactive Streamlit web application
- Metric units (mm, cm, m³)
- Imperial units (inch, US gal)
Many online tank volume calculators only provide total vessel volume.
TankCurves generates complete filling curves, supports multiple engineering head geometries, validates results against reference calculations, and exports ready-to-use calibration tables for industrial applications.
For a horizontal vessel with:
| Parameter | Value |
|---|---|
| Outer Diameter | 2000 mm |
| Wall Thickness | 5 mm |
| Length | 5000 mm |
| Head Type | Torospherical Head (DIN 28011) |
TankCurves calculates:
- Total vessel volume
- Filling curve
- Level-volume lookup table
- Engineering reference volume
- Relative deviation
Clone the repository:
git clone https://github.com/nfworx/tankcurves.git
cd tankcurvesInstall dependencies:
pip install -r requirements.txtstreamlit run app.pyThe application will open automatically in your browser.
tankcurves/
│
├── calculation/ # Numerical calculation algorithms
├── drawing/ # Vessel and head visualizations
├── tests/ # Automated test suite
├── models.py # Geometry models
├── app.py # Streamlit application
├── requirements.txt
└── pytest.ini
- Define vessel geometry
- Calculate internal dimensions
- Generate vessel radius profile
- Calculate liquid cross-sections
- Numerically integrate vessel volume
- Generate filling curve
- Validate results against reference calculations
- Export results to Excel
TankCurves compares numerically calculated vessel volumes against analytical or engineering reference calculations.
- Flat Head
- Hemispherical Head
- Elliptical Head 2:1
- Torospherical Head (DIN 28011)
- Torospherical Head (DIN 28013)
The reported deviation is intended for software verification and regression testing.
For torospherical heads, the reported deviation represents agreement with the selected engineering reference method and should not be interpreted as a certified measure of physical accuracy.
TankCurves includes an automated pytest test suite covering:
- Filling curve generation
- Reference volume calculations
- Radius profile generation
- Geometry calculations
- Numerical integration routines
All tests are executed automatically through GitHub Actions on every push and pull request.
- Additional head geometries
- Tilted tank support
- Additional export formats
- Improved visualizations
MIT License
