Metadata-Version: 2.4
Name: voftools
Version: 6.0
Summary: VOFTools: Analytical and geometrical tools for VOF methods in arbitrary grids
Author: Joaquin Lopez
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Fortran
Classifier: Topic :: Scientific/Engineering :: Physics
Project-URL: Documentation, https://air-hpc.github.io/voftools-manual/
Requires-Python: >=3.11
Requires-Dist: numpy>=2.0.0
Description-Content-Type: text/markdown

# **VOFTools**                     
## A package of FORTRAN subroutines with analytical and geometrical tools for 2D/3D VOF methods in general grids and Cartesian geometry   
**<center> (Version 6, October 2026) </center>** 
**<center> Copyright (C) 2026 J. Lopez</center>**             

# Description
VOFTools is a collection of routines with analytical and geometrical tools for 2D/3D Volume of Fluid (VOF) methods in general grids and Cartesian geometry. This software is implemented in **Fortran** with **C** and **Python** interfaces using the `ISO_C_BINDING` module, and  `f2py` and `Meson`.

# License
This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this library.  If not, see <http://www.gnu.org/licenses/>.

# References about VOFTools

[1] J. Lopez, J. Hernandez, Analytical and geometrical tools for 3D
volume of fluid methods in general grids, Journal of Computational
Physics 227 (2008) 5939-5948. <https://doi.org/10.1016/j.jcp.2008.03.010>

[2] J. López, P. Gómez, J. Hernández, F. Faura, A two-grid adaptive
volume of fluid approach for dendritic solidification, Computers &
Fluids, 86 (2013) 326-342. <https://doi.org/10.1016/j.compfluid.2013.07.017>

[3] J. Lopez, J. Hernandez, P. Gómez, F. Faura, A new volume
conservation enforcement method for PLIC reconstruction in general
convex grids, Journal of Computational Physics 316 (2016) 338-359. <https://doi.org/10.1016/j.jcp.2016.04.018>

[4] J. Lopez, P. Gómez, C. Zanzi, J. Hernandez, F. Faura, Application of
non-convex analytic and geometric tools to a PLIC-VOF method, Proceedings
of the ASME 2016 International Mechanical Engineering Congress and
Exposition, November 11-17, 2016, Phoenix, Arizona, IMECE2016-67409. <https://doi.org/10.1115/IMECE2016-67409>

[5] J. López, J. Hernández, P. Gómez, F. Faura, VOFTools - A software
package of calculation tools for volume of fluid methods using general
convex grids, Computer Physics Communications 223 (2018) 45-54. <https://doi.org/10.1016/j.cpc.2017.09.032>

[6] J. López, J. Hernández, P. Gómez, F. Faura, Non-convex analytical
and geometrical tools for volume truncation, initialization and
conservation enforcement in VOF methods, Journal of Computational Physics
392 (2019) 666-693. <https://doi.org/10.1016/j.jcp.2019.04.055>

[7] J. López, J. Hernández, P. Gómez, C. Zanzi, R. Zamora, VOFTools 3.2:
Added VOF functionality to initialize the liquid volume fraction in
general convex cells, Computer Physics Communications 245 (2019) 106859. <https://doi.org/10.1016/j.cpc.2019.07.022>

[8] J. López, J. Hernández, P. Gómez, C. Zanzi, R. Zamora, VOFTools 5: An extension to non-convex geometries of calculation tools for volume of fluid methods,
Computer Physics Communications 252 (2020) 107277. <https://doi.org/10.1016/j.cpc.2020.107277>

[9] J. López, J. Hernández, On polytope intersection by half-spaces and hyperplanes for unsplit geometric volume of fluid methods on arbitrary grids, Computer Physics Communications 300 (2024) 109167. <https://doi.org/10.1016/j.cpc.2024.109167>

[10] J. López, Unsplit geometric volume-of-fluid method with iterative piecewise-paraboloid interface reconstruction on arbitrary three-dimensional grids, Journal of Computional Physics 553 (2026) 114714. <https://doi.org/10.1016/j.jcp.2026.114714>

For more information contact joaquin.lopez@upct.es

# Components of the supplied package

The package includes the following key components:

• `src`: Directory containing the core source code and interface definitions.
- `dimpol.h`: Header file declaring parameters ns and nv used for pre-allocating
arrays in polytope computations.
- `voftools.f90`: Fortran source code implementing the core routines of the
VOFTools library.
- `uservoftools.f90`: Fortran source file containing user-defined routines and
functions, allowing for custom logic integration.
- `cvoftools.h`: C header file declaring the interfaces for the core VOFTools
library routines, enabling use in C programs.
- `cuservoftools.h`: C header file exposing the user-defined routines from
uservoftools.f90 for integration into C applications.
- `voftools.pyf`: F2PY signature file that defines how Fortran routines in
voftools.f90 are exposed to Python, facilitating binary interface compatibility.
- `cellparabout.py`: Python script that reads a polyhedron from a VTK file
and a set of paraboloid coefficients from a text file. It then generates the
corresponding paraboloid surface, computes the intersection curve between the polyhedron and the paraboloid, and visualizes the results using
pyvista.

• `__init__.py`: Python package initialization file, enabling the directory to be
imported as a module.

• `.f2py_f2cmap`: Configuration file for NumPy’s f2py tool, mapping Fortran data
types to corresponding C types to ensure correct memory layout and data
transfer.

• `examples`: Directory containing test programs demonstrating library usage in
Python, C, and Fortran. Each language example directory includes:

- `test2d`: Script for 2D PLIC operations.
- `test3d`: Script for 3D PLIC operations.
- `testfit`: Script for PPIC fitting operation.
- `testparab`: Script for PPIC truncation and shifting operations.

• `data`: Directory containing static input data files (e.g., polygon sets) required
by test programs.

• `vofvardef`: Input configuration file providing parameters for the C and Fortran
test executables.

• `Makefile`: Build script that automates the compilation of the VOFTools library
and the execution of C/Fortran test programs.

• `meson.build`: Meson build system configuration file defining dependencies, com-
piler flags, and installation rules for the VOFTools library.

• `pyproject.toml`: Python packaging configuration that specifies metadata, de-
pendencies, and build settings, supporting Python versions 3.10-3.13*** across
Linux, macOS, and Windows.

• `doc`: Directory containing the user manual in PDF format (user-manual-voftools-6.pdf).

• `readme.md`: Project overview file.

• `LICENSE`: Copy of the GNU General Public License (GPL), Version 3.

# Instalation and usage

See the user manual for detailed installation and usage instructions.


