Skip to content

feat: boundary-type-aware layer seeding — coordinate with CHILmesh #129 for open-ocean quad strategy #77

@domattioli

Description

@domattioli

Motivation

The QuADMESH+ thesis premise is that quads are advantageous in open-ocean regions (uniform wave propagation) and triangles near complex coastlines. Currently, tri2quad seeds the layer sweep from ALL boundary nodes equally — both coastal and open-ocean boundaries get the same treatment.

If CHILmesh supports boundary-type-aware skeletonization (CHILmesh #129), QuADMESH+ can request layers seeded from land boundaries only. This means:

  • Innermost layers (closest to coast) = triangles (fine resolution, complex geometry)
  • Outer layers (open ocean) = quads (uniform, coarser resolution)

This matches the exact physical motivation from the thesis.

Proposed change

# In tri2quad, pass boundary_seed_types to CHILmesh.skeletonize()
mesh = CHILmesh.read_from_fort14(path)
mesh.skeletonize(
    boundary_seed_types=["mainland", "island"],  # land boundaries only
    boundary_exclude_types=["open_ocean"],
)
result = tri2quad(mesh, method="faithful")

Dependency

Blocked on CHILmesh #129 — the boundary_seed_types argument doesn't exist yet. This issue is a coordination notice: once CHILmesh #129 lands, the QuADMESH+ caller should be updated to pass the type filter.

Acceptance

  • CHILmesh #129 merged
  • tri2quad (and the faithful_sweep path) accepts and passes boundary_seed_types
  • Tested on WNAT_Hagen: verify outer layers are quad-dominant, inner layers triangle-dominant
  • Quality comparison: open-ocean region quality before vs after boundary-type seeding

Related

[model: claude-sonnet-4-6, session: issue-triage-multi-repo-wIHtu]

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: normalDefault importance.request: enhancementRequest to improve an existing capability (non-breaking).status: brainstormingDesign phase; not yet implementable. Agents do NOT open a PR while in this state.type: featNew capability or skill.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions