Priority: Low
Problem
There is functional overlap between SIMPLE's reference_coordinates module and libneo's coordinate_system_t:
SIMPLE reference_coordinates:
ref_coords global instance
evaluate_cart(), evaluate_cyl() methods
- VMEC-specific implementation
libneo coordinate_system_t:
- Abstract base with multiple implementations
evaluate_cart(), evaluate_cyl(), evaluate_metric() methods
- VMEC and chartmap implementations
Both provide coordinate transformations but with different APIs and capabilities.
Proposed Solution
Consider consolidating to use libneo's coordinate_system_t throughout SIMPLE:
- Replace
reference_coordinates usage with coordinate_system_t
- Or make
reference_coordinates a thin wrapper around coordinate_system_t
- Ensure all needed functionality (Jacobians, metrics) is accessible
Benefits
- Single coordinate transformation API
- Reduced code duplication
- Leverage libneo's more complete implementation
Caveats
- API changes required throughout SIMPLE
- Need to verify libneo provides all required functionality
- May require libneo modifications
Related
- See
DOC/coordinates-and-fields.md Section 7
Priority: Low
Problem
There is functional overlap between SIMPLE's
reference_coordinatesmodule and libneo'scoordinate_system_t:SIMPLE reference_coordinates:
ref_coordsglobal instanceevaluate_cart(),evaluate_cyl()methodslibneo coordinate_system_t:
evaluate_cart(),evaluate_cyl(),evaluate_metric()methodsBoth provide coordinate transformations but with different APIs and capabilities.
Proposed Solution
Consider consolidating to use libneo's
coordinate_system_tthroughout SIMPLE:reference_coordinatesusage withcoordinate_system_treference_coordinatesa thin wrapper aroundcoordinate_system_tBenefits
Caveats
Related
DOC/coordinates-and-fields.mdSection 7