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/ParabfitREADME
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 .
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, functionlocal_patchreturns a collection of interface reconstruction polygons surrounding a target cell.interface_patch_type.F90, functioncurvature_from_patchtakes a collection of polygons and drives other routines to fit a paraboloid and calculate curvature.paraboloid_type.F90, subroutinevolumetricFitfits a paraboloid to a given set of polygons.paraboloid_type.F90, functioncurvaturecalculates curvature at a point on the paraboloid.
Related Skills
node-connect
349.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
