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
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 GISv.flexureaddon, 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
BmiGflexexposes SAS_NG only on auniform_rectilineargrid (Grid 0), which works but does not expose the scattered-point capability.What would be needed
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_facepossibly requiring two grid IDs or a shared node set with separate input/output variables
BmiGflexwith a mode-conditional grid implementation, or introducea second class (e.g.
BmiGflexScatter) for the scattered-point caseScope
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