3.3 KiB
3.3 KiB
Sprint Contract: Core Domain DOF Extraction
Objective
Move core types, diagnostics, domain data, validation, AnalysisModel, DofManager, and Phase 1 boundary/load/property model ownership out of the monolithic header into the documented Core, Util, Boundary, Load, and Property module boundaries.
Required Reading
- /AGENTS.md
- /PROGRESS.md
- /PLAN.md
- /docs/README.md
- /docs/HARNESS_ENGINEERING.md
- /docs/ARCHITECTURE.md
- /docs/ADR.md
- /docs/NUMERICAL_CONVENTIONS.md
- /phases/1-structure-alignment-refactor/step0-architecture-map.md
- /phases/1-structure-alignment-refactor/step1.md
Scope
- Extract numeric aliases, diagnostics, DOF enum/mapping, domain entities, domain validation helpers,
AnalysisModel, andDofManager. - Extract Phase 1
BoundaryCondition,NodalLoad, andShellSectionownership intoBoundary,Load, andPropertymodule headers or implementation files while keepingDomainas the aggregate input model. - Keep
NodeandElementfree of equation ids. - Keep
Domainas input-model ownership and treat it as immutable after parsing. - Preserve existing symbol names and the
fesanamespace unless a compiler-visible conflict requires a narrow adjustment.
Allowed Files
include/fesa/fesa.hppinclude/fesa/Core/include/fesa/Util/include/fesa/Boundary/include/fesa/Load/include/fesa/Property/src/Core/src/Util/src/Boundary/src/Load/src/Property/tests/CMakeLists.txtphases/1-structure-alignment-refactor/index.jsonPLAN.mdPROGRESS.md
Explicit Non-Goals
- Do not move parser, MITC4 element, assembly, analysis, solver, material-law, or result writer code in this step except for include dependency repair.
- Do not change DOF order or Abaqus DOF mapping.
- Do not change reaction recovery formulas.
- Do not add runtime polymorphic interfaces that are not needed for this extraction.
Tests To Write First
- Add or update focused tests proving module includes expose
DofManager,Domain, diagnostics, DOF mapping, Phase 1 boundary/load/property model types, and the umbrella header. - Preserve existing DofManager and domain validation behavioral tests as characterization tests.
Reference Artifacts
- None.
Acceptance Commands
python scripts/validate_workspace.py
Evaluator Checklist
- Core ownership matches
docs/ARCHITECTURE.md. - Boundary, Load, and Property Phase 1 model types are no longer hidden only in
fesa.hpp. DofManagerstill owns constrained/free mapping, equation numbering, sparse connectivity inputs, and full-vector reconstruction.- Numeric aliases remain
doubleand signed int64. NodeandElementdo not store global equation ids.- Existing parser, analysis, and reference tests still pass.
Handoff Requirements
- Update this step status in
phases/1-structure-alignment-refactor/index.json. - Record moved files and any remaining Core symbols still left in
fesa.hpp. - Update
PLAN.mdif the extraction reveals a dependency cycle that requires a later contract change.
Do Not
- Do not weaken tests to accommodate include-order problems.
- Do not let
Coredepend onIO,Element,Assembly,Analysis, orResults. - Do not create circular dependencies between
Core,Boundary,Load, andProperty.