SkillAgentSearch skills...

Parabfit

Reproduces results from the paper "A Paraboloid Fitting Technique for Calculating Curvature from Piecewise-Linear Interface Reconstructions on 3D Unstructured Meshes" by Jibben, Carlson, and Francois

Install / Use

/learn @zjibben/Parabfit
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Paraboloid Curvature

This is a fork of Pececillo which reproduces the results for the paper "A Paraboloid Fitting Technique for Calculating Curvature from Piecewise-Linear Interface Reconstructions on 3D Unstructured Meshes" by Z. Jibben, N. N. Carlson, and M. M. Francois, 2017.

Building

This depends on the libraries necessary for building Pececillo. A superbuild may be found here. Tests successfully run with the Intel compilers v17.0.4.

$ mkdir build
$ cd build
$ cmake -DCMAKE_PREFIX_PATH=/your/pececillo-tpl/install/path ..
$ make

Running

$ cd run
$ ../build/src/parabfit/pececillo-parabfit

By default, this will calculate the curvature error norms for the ellipsoid test case on the coarsest tetrahedral mesh, which should take 5-20 minutes, depending on your hardware.

To reproduce all results in the paper, you must first download all tetrahedral and distorted hexahedral meshes from here and unpack them in the run directory. Then, execute $ ../build/src/parabfit/pececillo-parabfit full. This will take days to weeks to calculate on a single workstation, due to the high cost of initializing volume fraction fields, and to a lesser extent calculating normal vectors via LVIRA. You can speed this up by instead downloading volume fraction fields and normal vectors from here, unpacking them in the run directory. By reading in these fields, all paper results will be calculated in a few hours.

Both the fields and meshes tarballs are identified by DOI.

Paraboloid Fitting Algorithm in the Source

To find the source code for the paraboloid fitting algorithm, look at the following in the src/lib directory:

  • surface_type.F90, function local_patch returns a collection of interface reconstruction polygons surrounding a target cell.
  • interface_patch_type.F90, function curvature_from_patch takes a collection of polygons and drives other routines to fit a paraboloid and calculate curvature.
  • paraboloid_type.F90, subroutine volumetricFit fits a paraboloid to a given set of polygons.
  • paraboloid_type.F90, function curvature calculates curvature at a point on the paraboloid.

Related Skills

View on GitHub
GitHub Stars6
CategoryDevelopment
Updated4d ago
Forks0

Languages

Fortran

Security Score

70/100

Audited on Apr 1, 2026

No findings