Forward op_system axis and operator metadata through the op_engine connector so that ModelCore and CoreSolver can use structured population dimensions and IMEX operator splitting.
Problem
Mixing kernels flow from op_system to op_engine (merged as extra params), but operator specs and axis-aware metadata are not forwarded. The engine constructs ModelCore with hardcoded n_subgroups=1 and ignores the system's axis structure entirely.
Scope
- Read axis metadata from
system.option("axis_order"), system.option("axis_sizes"), etc. (or the formal hook once flepimop2 #131 lands)
- Build
ModelCore using actual axis sizes: n_subgroups from axis meta, other_axes from additional dimensions
- Read operator specs from
system.option("operators", None) and merge with config-level operator overrides into OperatorSpecs
- Set
operator_axis from meta when available
- Validate operator shapes match axis lengths
- Keep existing mixing-kernel merge as fallback
Files
flepimop2-op_engine/src/flepimop2/engine/op_engine/engine.py (run() method)
flepimop2-op_engine/tests/
Blocked by
Related
Forward op_system axis and operator metadata through the op_engine connector so that
ModelCoreandCoreSolvercan use structured population dimensions and IMEX operator splitting.Problem
Mixing kernels flow from op_system to op_engine (merged as extra params), but operator specs and axis-aware metadata are not forwarded. The engine constructs
ModelCorewith hardcodedn_subgroups=1and ignores the system's axis structure entirely.Scope
system.option("axis_order"),system.option("axis_sizes"), etc. (or the formal hook once flepimop2 #131 lands)ModelCoreusing actual axis sizes:n_subgroupsfrom axis meta,other_axesfrom additional dimensionssystem.option("operators", None)and merge with config-level operator overrides intoOperatorSpecsoperator_axisfrom meta when availableFiles
flepimop2-op_engine/src/flepimop2/engine/op_engine/engine.py(run()method)flepimop2-op_engine/tests/Blocked by
optionsgetattrintrospection withsystem.option()for mixing kernels #42 —system.option()adoptionRelated
validate_system()in flepimop2 provider #41 (validate_system) — validation should check axis/operator compatibility