Skip to content

BMI: unstructured grid support for SAS_NG scattered-point loads #77

Description

@awickert

Background

SAS_NG (Superposition of Analytical Solutions, Non-Gridded) computes flexural deflection by evaluating the analytical Green's function at arbitrary point-load positions and arbitrary output positions. This is the method used by the GRASS GIS v.flexure addon, which accepts vector point input rather than a raster grid.

Mathematically, SAS_NG has no requirement for a regular grid — it is the one gFlex method that naturally maps onto an unstructured BMI grid. The current BmiGflex exposes SAS_NG only on a uniform_rectilinear grid (Grid 0), which works but does not expose the scattered-point capability.

What would be needed

  • Implement the BMI unstructured-grid methods currently raising NotImplementedError:
    get_grid_x, get_grid_y, get_grid_node_count, get_grid_edge_count,
    get_grid_face_count, get_grid_edge_nodes, get_grid_face_edges,
    get_grid_face_nodes, get_grid_nodes_per_face
  • Decide on the grid topology: load positions and output positions may differ,
    possibly requiring two grid IDs or a shared node set with separate input/output variables
  • Either extend BmiGflex with a mode-conditional grid implementation, or introduce
    a second class (e.g. BmiGflexScatter) for the scattered-point case
  • Add tests and documentation

Scope

This is a post-v2.0.0 enhancement. The current BMI correctly exposes SAS_NG as a
method option on a uniform rectilinear grid; this issue tracks the additional
unstructured interface.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions