SHORE produces every structured grid a Chimera (overset) CFD assembly needs and packages them for the solver. Two product lines, one tool:
Body-fitted near-body meshes by hyperbolic normal extrusion of a body surface. Surface input is a triangulated STL today; CAD (STEP / IGES / BREP) is on the roadmap. Four CLI-selectable topologies (--topology cubed_sphere|ogrid|cgrid|ch); two further topologies (OHTopology, CGridTipCap) are available from the Python API:
# Pack each component into binary .grdshore grd wall_*.geo -o wall.grdshore grd background_*.geo -o background.grd# Generate the chimera descriptor with marker boxes for hole-cuttingshore boxes-from-stl fuselage.stl --block sub0 --max-outward-gap 0.10 -o boxes.jsonshore cc-par wall.adjacency.json wall.cc.par --grd wall.grd --boxes boxes.jsonshore cc-par background.adjacency.json background.cc.par --grd background.grd --free-bc -9# Merge multi-component runs into a single Xall jobshore grd-merge background.grd wall.grd -o assembly.grdshore cc-par-merge background.cc.par wall.cc.par -o assembly.cc.par --grd assembly.grd
Hole cutting, fringe identification, and donor search are the solver's responsibility β SHORE produces every grid and every descriptor the solver needs, then steps out of the way.
The cubed-sphere topology is SHORE's flagship and the default for shore mesh: 4 equatorial sub-blocks plus 2 polar cap blocks, all conforming through SHARED-memory seams (sub-sub) and DIRICHLET pinning (cap-equator). Cap k=0 seeds use gnomonic flat-square projection β a flat diamond in the tangent plane at each cap pole, radially projected onto the body β so cap cells are square by construction with no concentric pole pattern.
k=0 seam C1: the equator's first/last meridional cell is per-j pinned to the cap-edge first cell at every seam vertex (so the 3 edges meeting at each cap-corner share a single first-step length).
Volume seam continuity: each block computes its outward normal using centred differences across multi-block seams (ghost rows from partner blocks), so the spacing stays continuous on the outer surface layer-by-layer.
The single-block O-grid is the simpler alternative β one j-periodic block, polar singular axis rows, one .geo file. Suitable for downstream tools that need a single periodic-j block.
The OH hybrid topology extends the cubed-sphere wrap with a 6-block structured H-channel that bridges the wrap envelope to a user-supplied axis-aligned bounding box. The wrap and channel are SHARED-by-view (one numpy buffer per pair) and the seam is C1 by construction β wrap and channel cells line up bit-exactly and grow geometrically across the seam. The result is a 12-block, single-component near-body mesh that covers everything from the body surface out to a Cartesian box without a chimera-fringe handover. Available as a Python API (shore.mesh.OHTopology); CLI integration is on the roadmap.
The CH hybrid does the same for C-grid airfoils: it extends the C-grid wrap (3-block sharp-TE or 4-block blunt-TE) with 7 (sharp) / 8 (blunt) channel sub-blocks bridging the wrap to a chord/normal-aligned far-field frame. The k_hi-side channels share memory with the wrap; the outflow sub-blocks are conformal SHARED to the wrap's wake far-tip faces (no chimera-fringe handover). Total: 12 blocks (sharp) or 14 blocks (blunt). Available as shore mesh --topology ch.
Chief Yak Shaver, Accidental Research Scientist, and HPC Farmer β CFD researcher who decided that one more day debugging Fortran build systems was one day too many, opened a Python REPL "just to prototype," and now finds himself maintaining a meshing library, a chimera assembler, an MPI load balancer, and the seven blog tabs he keeps meaning to read.