GridGeneration.jl
GridGeneration.jl generates structured multi-block grids whose point spacing follows a user-supplied metric field. Starting from an initial single- or multi-block grid it
- splits blocks at chosen indices (
SplitMultiBlock, Single-block splitting), - redistributes each block's edge points so that the spacing equidistributes the metric, choosing the number of points per direction automatically (
SolveAllBlocks), - rebuilds each block by transfinite interpolation (
TFI), and - smooths the blocks with an elliptic (Winslow-type) solver with wall-orthogonality forcing (
SmoothBlocks).
GenerateGrid runs the whole pipeline. Grids can be read from and written to the Tortuga (.grid) format.
New here? Start with Getting Started, then see the airfoil example and the API Reference.
Overview of the method
A brief description of the underlying ordinary differential equation (ODE) is presented in ODE Formulation with supporting work shown in Mathematical Work. The ODE is a nonlinear second-order boundary value problem, which can be reformulated as a system of first-order ODEs. Two numerical methods were tried: one for the First Order System using DifferentialEquations.jl, and one for the Second Order BVP ODE using central differencing and fixed-point iteration with under-relaxation. Both proved fragile, so a semi-analytical method (semi due to the use of numerical integration and inversion) is the default (boundarySolver = :analytic).
To create 2D and 3D grids, we present a method of mapping 2D to 1D and projecting the 1D solution back to 2D. The elliptic smoother is described in the Theory section.
Acknowledgements
Work is done under the supervision and support of Dr. Larsson at the University of Maryland.