docs: redefine phase 1 rebaseline steps
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"project": "FESA",
|
||||
"phase": "1-linear-static-mitc4-rebaseline",
|
||||
"steps": [
|
||||
{ "step": 0, "name": "rebaseline-audit", "status": "pending" },
|
||||
{ "step": 1, "name": "reference-onboarding", "status": "pending" },
|
||||
{ "step": 2, "name": "core-harness-guardrails", "status": "pending" },
|
||||
{ "step": 3, "name": "parser-domain-subset", "status": "pending" },
|
||||
{ "step": 4, "name": "validation-singular-diagnostics", "status": "pending" },
|
||||
{ "step": 5, "name": "dof-manager-reaction-foundation", "status": "pending" },
|
||||
{ "step": 6, "name": "results-comparator-foundation", "status": "pending" },
|
||||
{ "step": 7, "name": "mitc4-geometry-directors", "status": "pending" },
|
||||
{ "step": 8, "name": "mitc4-covariant-strain-tying", "status": "pending" },
|
||||
{ "step": 9, "name": "mitc4-material-integration", "status": "pending" },
|
||||
{ "step": 10, "name": "mitc4-stiffness-drilling", "status": "pending" },
|
||||
{ "step": 11, "name": "mitc4-patch-benchmark-tests", "status": "pending" },
|
||||
{ "step": 12, "name": "assembly-sparse-solver-path", "status": "pending" },
|
||||
{ "step": 13, "name": "linear-static-workflow", "status": "pending" },
|
||||
{ "step": 14, "name": "stored-reference-regression", "status": "pending" },
|
||||
{ "step": 15, "name": "phase1-evaluator-closeout", "status": "pending" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
# Sprint Contract: Rebaseline Audit
|
||||
|
||||
## Objective
|
||||
Audit the existing Phase 1 implementation against the paper-based `docs/MITC4_FORMULATION.md` and produce a concrete rework map before changing solver behavior.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /PROGRESS.md
|
||||
- /PLAN.md
|
||||
- /docs/README.md
|
||||
- /docs/HARNESS_ENGINEERING.md
|
||||
- /docs/PRD.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ADR.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /phases/1-linear-static-mitc4/index.json
|
||||
|
||||
## Scope
|
||||
- Inspect existing C++ implementation and tests only enough to classify what can be retained, rewritten, or deleted in later steps.
|
||||
- Produce or update planning notes in `PLAN.md` and `PROGRESS.md`.
|
||||
- If useful, add a short audit artifact under `phases/1-linear-static-mitc4-rebaseline/`.
|
||||
|
||||
## Allowed Files
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
- `phases/1-linear-static-mitc4-rebaseline/`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not change production C++ behavior.
|
||||
- Do not rewrite MITC4 formulas.
|
||||
- Do not unblock stored-reference regression by accepting unsupported Abaqus syntax.
|
||||
|
||||
## Tests To Write First
|
||||
- None. This is a planning and audit sprint.
|
||||
|
||||
## Reference Artifacts
|
||||
- `references/quad_01.inp`
|
||||
- `references/quad_01_displacements.csv`
|
||||
- `references/quad_02.inp`
|
||||
- `references/quad_02_displacements.csv`
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- The audit identifies conflicts with `docs/MITC4_FORMULATION.md`, especially old averaged-edge basis, `1.0e-6` drilling scale, analytic thickness integration, and direct shear evaluation risks.
|
||||
- Future work is assigned to later rebaseline steps instead of being fixed here.
|
||||
- `PLAN.md` and `PROGRESS.md` describe the new state without treating the old P1-01 through P1-14 implementation as authoritative.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record completed audit work in `PROGRESS.md`.
|
||||
- Keep next implementation tasks in `PLAN.md` or later step files.
|
||||
|
||||
## Do Not
|
||||
- Do not merge this audit with implementation.
|
||||
- Do not remove old phase history.
|
||||
@@ -0,0 +1,61 @@
|
||||
# Sprint Contract: Reference Onboarding
|
||||
|
||||
## Objective
|
||||
Create a Phase 1 reference path for `quad_02` without modifying the original Abaqus artifact or silently expanding parser support.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /PROGRESS.md
|
||||
- /PLAN.md
|
||||
- /docs/ABAQUS_INPUT_SUBSET.md
|
||||
- /docs/VERIFICATION_PLAN.md
|
||||
- /docs/RESULTS_SCHEMA.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /references/quad_02.inp
|
||||
- /references/quad_02_displacements.csv
|
||||
|
||||
## Scope
|
||||
- Inspect `quad_02` and document its supported and unsupported features.
|
||||
- Add a normalized Phase 1-compatible derivative input if selected by the planner, keeping the original `quad_02.inp` unchanged.
|
||||
- Add notes or manifest metadata for unit system, source solver, expected outputs, and tolerances.
|
||||
|
||||
## Allowed Files
|
||||
- `references/`
|
||||
- `docs/ABAQUS_INPUT_SUBSET.md`
|
||||
- `docs/VERIFICATION_PLAN.md`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
- `tests/` only for reference artifact parsing/comparator tests
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not implement `Part`, `Assembly`, or `Instance` parser support in this step unless this contract is revised first.
|
||||
- Do not edit `references/quad_02.inp` or `references/quad_02_displacements.csv`.
|
||||
- Do not compare solver displacements until the MITC4 rebuild and end-to-end workflow are complete.
|
||||
|
||||
## Tests To Write First
|
||||
- Test that original `quad_02.inp` is recognized as stored provenance with unsupported `Part/Assembly/Instance`.
|
||||
- If a normalized input is added, test that it contains only the documented Phase 1 subset.
|
||||
- Test `quad_02_displacements.csv` column loading and 121-row node-label parsing.
|
||||
|
||||
## Reference Artifacts
|
||||
- `references/quad_02.inp`
|
||||
- `references/quad_02_displacements.csv`
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Original Abaqus files are preserved.
|
||||
- Any normalized derivative file has a clear name and provenance note.
|
||||
- Parser scope remains aligned with `docs/ABAQUS_INPUT_SUBSET.md`.
|
||||
- Tolerances and result mapping are documented before regression use.
|
||||
|
||||
## Handoff Requirements
|
||||
- Update `PROGRESS.md` with reference files changed or added.
|
||||
- Update `PLAN.md` if parser compatibility remains blocked.
|
||||
|
||||
## Do Not
|
||||
- Do not treat `*Density` as material support.
|
||||
- Do not allow `Part/Assembly/Instance` through the Phase 1 parser accidentally.
|
||||
@@ -0,0 +1,54 @@
|
||||
# Sprint Contract: MITC4 Stiffness Drilling
|
||||
|
||||
## Objective
|
||||
Assemble the MITC4 element stiffness and internal force kernel using the documented strain, material, integration, six-DOF transform, and drilling stabilization.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/ADR.md
|
||||
|
||||
## Scope
|
||||
- Accumulate `K_e = integral B^T D B dV`.
|
||||
- Add local drilling stabilization with `drilling_stiffness_scale = 1.0e-3`.
|
||||
- Transform local element stiffness/internal force to global 24-DOF order.
|
||||
- Preserve parameterization and diagnostics for drilling scale.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not add assembly/global solve.
|
||||
- Do not tune drilling scale to match one reference case.
|
||||
- Do not output stresses/resultants as mandatory fields.
|
||||
|
||||
## Tests To Write First
|
||||
- Stiffness dimension and symmetry tests.
|
||||
- Drilling diagonal reference tests using minimum positive physical local stiffness diagonal.
|
||||
- Zero/invalid reference diagonal diagnostic tests.
|
||||
- Rigid body physical strain-energy tests with documented drilling effects.
|
||||
- Internal force consistency test `f_int_e = K_e u_e` for linear elastic Phase 1.
|
||||
|
||||
## Reference Artifacts
|
||||
- None.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Old `1.0e-6 * E * thickness` drilling rule is gone.
|
||||
- Global 24-DOF ordering matches `UX,UY,UZ,RX,RY,RZ` per node.
|
||||
- Stiffness remains linear elastic and symmetric.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record element kernel readiness in `PROGRESS.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not optimize or parallelize before element tests pass.
|
||||
@@ -0,0 +1,52 @@
|
||||
# Sprint Contract: MITC4 Patch Benchmark Tests
|
||||
|
||||
## Objective
|
||||
Add element-level and small-mesh MITC4 patch and benchmark tests before integrating stored Abaqus references.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /docs/VERIFICATION_PLAN.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
|
||||
## Scope
|
||||
- Add constant membrane, pure bending, pure shear, pure twist, rigid-body, and drilling sensitivity tests.
|
||||
- Add a thin cantilever or plate strip test to expose shear locking.
|
||||
- Add benchmark scaffolding for Scordelis-Lo after flat tests pass.
|
||||
|
||||
## Allowed Files
|
||||
- `tests/`
|
||||
- `include/`
|
||||
- `src/` only for minimal fixes required by tests
|
||||
- `docs/VERIFICATION_PLAN.md` only for clarifying benchmark notes
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not require Abaqus execution.
|
||||
- Do not add pressure loads for Scordelis-Lo in Phase 1.
|
||||
- Do not hide failing element behavior by loosening tolerances without rationale.
|
||||
|
||||
## Tests To Write First
|
||||
- The patch and benchmark tests are the sprint output; write them before any fixes.
|
||||
- Include at least one negative or sensitivity test for drilling scale effects.
|
||||
|
||||
## Reference Artifacts
|
||||
- Local analytic or hand-check benchmark data only.
|
||||
- Stored Abaqus CSV regression is reserved for step 14.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Tests cover locking-sensitive behavior, not only shape functions.
|
||||
- Tolerances are scale-aware and documented.
|
||||
- Any implementation fixes remain minimal and within MITC4 scope.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record benchmark coverage and remaining gaps in `PROGRESS.md` and `PLAN.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not implement new load types to force a benchmark into Phase 1.
|
||||
@@ -0,0 +1,55 @@
|
||||
# Sprint Contract: Assembly Sparse Solver Path
|
||||
|
||||
## Objective
|
||||
Rebuild or verify full-space assembly, reduced free-DOF solve path, solver adapter boundary, and full-vector reaction recovery using the rebuilt MITC4 kernel.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ADR.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
|
||||
## Scope
|
||||
- Assemble global stiffness and external load vectors.
|
||||
- Preserve full-space data for `RF = K_full * U_full - F_full`.
|
||||
- Apply constrained DOF elimination via `DofManager`.
|
||||
- Use the current deterministic test solver or adapter boundary; keep MKL behind a future adapter.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not expose MKL or TBB APIs directly in solver core.
|
||||
- Do not compare stored Abaqus references yet.
|
||||
- Do not compute reactions from reduced equations.
|
||||
|
||||
## Tests To Write First
|
||||
- Small assembled system tests with known displacement.
|
||||
- Full-vector `RF` recovery tests.
|
||||
- Constrained/free projection tests through assembly.
|
||||
- Singular solve diagnostic tests.
|
||||
- Sparse pattern deterministic ordering tests if sparse structure exists.
|
||||
|
||||
## Reference Artifacts
|
||||
- None.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Full-space stiffness/load/displacement are available or reconstructable for reactions.
|
||||
- Solver adapter boundary is preserved.
|
||||
- Singular failures remain actionable.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record assembly and reaction readiness in `PROGRESS.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not let elements own global equation ids.
|
||||
@@ -0,0 +1,56 @@
|
||||
# Sprint Contract: Linear Static Workflow
|
||||
|
||||
## Objective
|
||||
Rebuild or verify the full linear static workflow from parsed `Domain` to `AnalysisModel`, `AnalysisState`, solve, `U` and `RF` result fields.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ADR.md
|
||||
- /docs/RESULTS_SCHEMA.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
|
||||
## Scope
|
||||
- Build the active `AnalysisModel` for one linear static step.
|
||||
- Run the template workflow: build DOF map, assemble, apply constraints, solve, reconstruct full vectors, recover RF, write results.
|
||||
- Keep `Domain` immutable and `AnalysisState` mutable.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not implement nonlinear, dynamic, pressure, or thermal behavior.
|
||||
- Do not add multiple-step execution unless already trivial and tested.
|
||||
- Do not make HDF5 dependency mandatory if the current minimal writer remains the accepted Phase 1 path.
|
||||
|
||||
## Tests To Write First
|
||||
- Input-to-analysis-model activation test.
|
||||
- End-to-end small linear static solve with `U` and `RF`.
|
||||
- Result schema field label and frame tests.
|
||||
- Full-vector reaction balance test.
|
||||
- Missing/unsupported input negative tests routed through the workflow.
|
||||
|
||||
## Reference Artifacts
|
||||
- Normalized small `.inp` fixtures may be used.
|
||||
- Stored Abaqus CSV regression is reserved for step 14.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Workflow follows architecture boundaries.
|
||||
- `AnalysisState` owns mutable vectors.
|
||||
- Results use documented step/frame/field structure.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record end-to-end workflow readiness in `PROGRESS.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not bypass validators to make a model solve.
|
||||
@@ -0,0 +1,61 @@
|
||||
# Sprint Contract: Stored Reference Regression
|
||||
|
||||
## Objective
|
||||
Run automated stored-reference displacement regression against accepted Phase 1-compatible S4 cases, starting with the `quad_02` compatibility path chosen in step 1.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/VERIFICATION_PLAN.md
|
||||
- /docs/ABAQUS_INPUT_SUBSET.md
|
||||
- /docs/RESULTS_SCHEMA.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /references/
|
||||
|
||||
## Scope
|
||||
- Wire accepted Phase 1-compatible reference inputs into automated tests.
|
||||
- Compare FESA `U` against `*_displacements.csv` using documented tolerances.
|
||||
- Keep original unsupported Abaqus files as provenance and negative/compatibility tests.
|
||||
- Record pass/fail comparison details.
|
||||
|
||||
## Allowed Files
|
||||
- `references/`
|
||||
- `tests/`
|
||||
- `include/`
|
||||
- `src/` only for minimal fixes needed by reference regression
|
||||
- `docs/VERIFICATION_PLAN.md`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not require Abaqus execution.
|
||||
- Do not accept `S4R`, `Part/Assembly/Instance`, `*Density`, or `NLGEOM=YES` through the parser without a prior parser contract.
|
||||
- Do not mark Phase 1 complete with only one reference case unless `PLAN.md` records the remaining PRD gap.
|
||||
|
||||
## Tests To Write First
|
||||
- Reference manifest or fixture discovery tests.
|
||||
- `quad_02` accepted derivative input regression test if normalized in step 1.
|
||||
- Original `quad_02.inp` unsupported-provenance test if parser scope still excludes `Part/Assembly/Instance`.
|
||||
- CSV displacement comparison test with absolute and relative tolerances.
|
||||
|
||||
## Reference Artifacts
|
||||
- `references/quad_02.inp`
|
||||
- `references/quad_02_displacements.csv`
|
||||
- Any normalized Phase 1-compatible derivative files from step 1.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Regression uses stored artifacts only.
|
||||
- Original reference provenance is preserved.
|
||||
- Comparison is node-id-based and reports errors clearly.
|
||||
- Remaining PRD requirement for three stored references is recorded if not satisfied.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record reference pass/fail, tolerances, and residual risks in `PROGRESS.md`.
|
||||
- Update `PLAN.md` with additional reference cases still needed.
|
||||
|
||||
## Do Not
|
||||
- Do not tune solver formulas to one CSV without element-level tests remaining green.
|
||||
@@ -0,0 +1,65 @@
|
||||
# Sprint Contract: Phase 1 Evaluator Closeout
|
||||
|
||||
## Objective
|
||||
Perform an independent Phase 1 evaluation against the rebaseline contracts, docs, tests, reference artifacts, and validation commands.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /PROGRESS.md
|
||||
- /PLAN.md
|
||||
- /docs/README.md
|
||||
- /docs/HARNESS_ENGINEERING.md
|
||||
- /docs/PRD.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ADR.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/ABAQUS_INPUT_SUBSET.md
|
||||
- /docs/VERIFICATION_PLAN.md
|
||||
- /docs/RESULTS_SCHEMA.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /phases/1-linear-static-mitc4-rebaseline/index.json
|
||||
|
||||
## Scope
|
||||
- Review all completed rebaseline steps.
|
||||
- Run validation.
|
||||
- Produce pass/fail findings.
|
||||
- Update phase status, `PLAN.md`, and `PROGRESS.md` with final Phase 1 state.
|
||||
|
||||
## Allowed Files
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
- `phases/index.json`
|
||||
- `phases/1-linear-static-mitc4-rebaseline/index.json`
|
||||
- Optional evaluator feedback artifact under `phases/1-linear-static-mitc4-rebaseline/`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not implement missing solver behavior during evaluation.
|
||||
- Do not approve unresolved reference gaps silently.
|
||||
- Do not mark old superseded phase steps as evidence for new MITC4 formulation compliance unless they were revalidated.
|
||||
|
||||
## Tests To Write First
|
||||
- None. This is an evaluator sprint.
|
||||
|
||||
## Reference Artifacts
|
||||
- All accepted Phase 1 reference artifacts under `references/`.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- All CRITICAL `AGENTS.md` rules are satisfied.
|
||||
- TDD expectations are met for implementation steps.
|
||||
- MITC4 implementation follows `docs/MITC4_FORMULATION.md`.
|
||||
- Parser has not silently expanded unsupported Abaqus features.
|
||||
- `RF` is recovered from full vectors.
|
||||
- At least one stored displacement reference regression passes, and remaining PRD reference gaps are explicit.
|
||||
- `PLAN.md` and `PROGRESS.md` are synchronized.
|
||||
|
||||
## Handoff Requirements
|
||||
- If passed, mark the rebaseline phase complete and move remaining Phase 2 or reference tasks to `PLAN.md`.
|
||||
- If failed, write a concise feedback artifact with required fixes and commands to rerun.
|
||||
|
||||
## Do Not
|
||||
- Do not self-approve implementation without evidence from tests and reference comparisons.
|
||||
@@ -0,0 +1,58 @@
|
||||
# Sprint Contract: Core Harness Guardrails
|
||||
|
||||
## Objective
|
||||
Refresh the build, validation, core numeric aliases, DOF enum, and diagnostic guardrails so later MITC4 work has stable test foundations.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ADR.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/HARNESS_ENGINEERING.md
|
||||
- /scripts/validate_workspace.py
|
||||
|
||||
## Scope
|
||||
- Preserve or repair CMake/CTest validation.
|
||||
- Verify `double` and signed int64 aliases are centralized.
|
||||
- Verify `UX`, `UY`, `UZ`, `RX`, `RY`, `RZ` mapping to Abaqus DOF `1..6`.
|
||||
- Improve diagnostics only where needed for later steps.
|
||||
|
||||
## Allowed Files
|
||||
- `CMakeLists.txt`
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `scripts/validate_workspace.py`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not implement parser features.
|
||||
- Do not implement MITC4 stiffness.
|
||||
- Do not introduce MKL, TBB, or HDF5 APIs into solver core.
|
||||
|
||||
## Tests To Write First
|
||||
- DOF enum and Abaqus DOF number mapping tests.
|
||||
- Numeric alias compile-time or runtime tests for `double` and int64 paths.
|
||||
- Validation script smoke test through `python scripts/validate_workspace.py`.
|
||||
|
||||
## Reference Artifacts
|
||||
- None.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Core aliases and DOF mapping are not duplicated across modules.
|
||||
- Diagnostics include enough context for later parser, model, and singular errors.
|
||||
- Validation remains a real build plus test command.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record changed guardrails and test coverage in `PROGRESS.md`.
|
||||
- Leave future parser/MITC4 tasks in later step files.
|
||||
|
||||
## Do Not
|
||||
- Do not weaken validation to make tests pass.
|
||||
- Do not add external library dependencies in this step.
|
||||
@@ -0,0 +1,58 @@
|
||||
# Sprint Contract: Parser Domain Subset
|
||||
|
||||
## Objective
|
||||
Revalidate and repair the Phase 1 Abaqus parser and `Domain` model against the documented subset while preserving strict rejection of unsupported reference features.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ADR.md
|
||||
- /docs/ABAQUS_INPUT_SUBSET.md
|
||||
- /docs/VERIFICATION_PLAN.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
|
||||
## Scope
|
||||
- Parse Phase 1 keywords into immutable `Domain` objects.
|
||||
- Preserve node, element, set, material, shell section, boundary, load, and step definitions.
|
||||
- Reject `S4R`, `Part/Assembly/Instance`, `*Include`, `NLGEOM=YES`, nonzero prescribed displacement, and unsupported material/section modes.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `docs/ABAQUS_INPUT_SUBSET.md` only for clarifying parser contract
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not implement analysis or assembly.
|
||||
- Do not add `Part/Assembly/Instance` support because `quad_02` contains it.
|
||||
- Do not normalize reference files in parser code.
|
||||
|
||||
## Tests To Write First
|
||||
- Parser acceptance tests for every Phase 1 keyword.
|
||||
- Generated and explicit `*Nset` and `*Elset` tests.
|
||||
- Unsupported feature rejection tests for `S4R`, `Part`, `Assembly`, `Instance`, `*Density`, and `NLGEOM=YES`.
|
||||
- Line-numbered diagnostic tests for malformed numeric and DOF fields.
|
||||
|
||||
## Reference Artifacts
|
||||
- `references/quad_01.inp` as unsupported provenance.
|
||||
- `references/quad_02.inp` as unsupported original provenance until normalized or parser scope changes.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Parser behavior matches `docs/ABAQUS_INPUT_SUBSET.md`.
|
||||
- `TYPE=S4` maps to internal MITC4.
|
||||
- Unsupported stored references are not silently accepted.
|
||||
- Domain objects do not own equation numbers.
|
||||
|
||||
## Handoff Requirements
|
||||
- Update `PROGRESS.md` with parser status.
|
||||
- Update `PLAN.md` for unresolved reference compatibility work.
|
||||
|
||||
## Do Not
|
||||
- Do not broaden the parser subset without ADR and doc updates.
|
||||
@@ -0,0 +1,56 @@
|
||||
# Sprint Contract: Validation Singular Diagnostics
|
||||
|
||||
## Objective
|
||||
Strengthen domain and analysis-model validation so invalid inputs and singular-prone models fail before or during solve with actionable diagnostics.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/ABAQUS_INPUT_SUBSET.md
|
||||
- /docs/VERIFICATION_PLAN.md
|
||||
|
||||
## Scope
|
||||
- Validate missing nodes, properties, materials, sets, boundary targets, load targets, active elements, and non-positive thickness.
|
||||
- Add singular-prone diagnostics for no free DOFs, untouched free DOFs, missing loads where expected, and unconstrained drilling/rotational risks.
|
||||
- Keep mesh quality diagnostics out of Phase 1.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not implement mesh quality metrics such as aspect ratio, skew, or warpage.
|
||||
- Do not solve the global system in this step.
|
||||
- Do not hide singular checks in element kernels.
|
||||
|
||||
## Tests To Write First
|
||||
- Missing node/property/material diagnostics.
|
||||
- Missing set used by shell section, boundary, or load.
|
||||
- No active elements.
|
||||
- No free DOFs.
|
||||
- Free DOFs untouched by any active element connectivity.
|
||||
- Rotational/drilling weak-constraint diagnostic smoke test.
|
||||
|
||||
## Reference Artifacts
|
||||
- Negative inline test inputs may be used.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Diagnostics include node id, element id, property id, material id, set name, DOF component, and source line where available.
|
||||
- Mesh quality remains explicitly deferred.
|
||||
- Validation does not mutate `Domain`.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record validation coverage in `PROGRESS.md`.
|
||||
- Note any remaining singular-diagnostic gaps in `PLAN.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not classify poor element shape as a Phase 1 mesh quality failure.
|
||||
@@ -0,0 +1,57 @@
|
||||
# Sprint Contract: Dof Manager Reaction Foundation
|
||||
|
||||
## Objective
|
||||
Rebuild or verify the six-DOF `DofManager`, constrained/free mapping, equation numbering, sparse-pattern inputs, and full-vector reconstruction needed for reaction recovery.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ADR.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/RESULTS_SCHEMA.md
|
||||
|
||||
## Scope
|
||||
- Manage active six-DOF shell nodes.
|
||||
- Apply fixed constraints by constrained DOF elimination.
|
||||
- Own equation numbering and sparse connectivity inputs.
|
||||
- Reconstruct full vectors in original global DOF order.
|
||||
- Provide data needed for `RF = K_full * U_full - F_full`.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not assemble MITC4 stiffness.
|
||||
- Do not store equation ids in `Node` or `Element`.
|
||||
- Do not compute `RF` from reduced vectors only.
|
||||
|
||||
## Tests To Write First
|
||||
- DOF activation and Abaqus component order.
|
||||
- Constrained/free partition tests.
|
||||
- Equation numbering stability with noncontiguous node ids.
|
||||
- Full/reduced vector reconstruction tests.
|
||||
- Sparse-pattern connectivity input tests.
|
||||
- Full-vector reaction formula unit test with a small known matrix.
|
||||
|
||||
## Reference Artifacts
|
||||
- None.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- `DofManager` owns all equation numbering.
|
||||
- Full-space order is deterministic and matches `UX,UY,UZ,RX,RY,RZ`.
|
||||
- Reaction foundation preserves constrained DOF information.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record DOF and reaction foundation status in `PROGRESS.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not bypass `DofManager` from elements or analysis code.
|
||||
@@ -0,0 +1,57 @@
|
||||
# Sprint Contract: Results Comparator Foundation
|
||||
|
||||
## Objective
|
||||
Rebuild or verify the minimum Phase 1 results model and Abaqus displacement CSV comparator before using stored reference regressions.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/RESULTS_SCHEMA.md
|
||||
- /docs/VERIFICATION_PLAN.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
|
||||
## Scope
|
||||
- Store minimum result model data for nodes, elements, `U`, and `RF`.
|
||||
- Preserve step/frame/field structure even if HDF5 writing is deferred.
|
||||
- Load Abaqus `*_displacements.csv` by node id and component label.
|
||||
- Compare using absolute and relative tolerances.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `docs/RESULTS_SCHEMA.md` only for clarifying schema text
|
||||
- `docs/VERIFICATION_PLAN.md` only for clarifying tolerance/reference text
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not make `S`, `E`, or `SF` mandatory.
|
||||
- Do not require Abaqus execution.
|
||||
- Do not rely on CSV row order.
|
||||
|
||||
## Tests To Write First
|
||||
- `U` and `RF` field component labels and basis tests.
|
||||
- CSV required-header tests.
|
||||
- Duplicate/missing/non-numeric node row tests.
|
||||
- Node-id-based comparison tests with absolute and relative tolerance paths.
|
||||
- Result frame metadata tests for Phase 1 linear static frame 0.
|
||||
|
||||
## Reference Artifacts
|
||||
- `references/quad_02_displacements.csv`
|
||||
- `references/quad_01_displacements.csv`
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Result component order matches docs.
|
||||
- Comparator maps Abaqus columns to FESA `U` labels exactly.
|
||||
- `RF` exists as a result field even if Abaqus RF CSV is unavailable.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record comparator readiness and remaining RF artifact decision in `PROGRESS.md` and `PLAN.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not add undocumented CSV formats.
|
||||
@@ -0,0 +1,55 @@
|
||||
# Sprint Contract: MITC4 Geometry Directors
|
||||
|
||||
## Objective
|
||||
Implement or rebuild MITC4 shape functions, natural-coordinate node order, element-center director policy, local director axes, and integration-point local bases.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/ADR.md
|
||||
|
||||
## Scope
|
||||
- Define `N1..N4` and derivatives for FESA natural coordinates.
|
||||
- Define tying points `A`, `B`, `C`, and `D`.
|
||||
- Build element-center director `Vn` from midsurface geometry.
|
||||
- Build nodal `V1`, `V2`, `Vn` and integration local Cartesian basis.
|
||||
- Add invalid/singular element diagnostics for near-zero normal, basis, Jacobian, and thickness.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not compute stiffness.
|
||||
- Do not add Abaqus `*Orientation` or nodal normal parsing.
|
||||
- Do not add mesh quality diagnostics.
|
||||
|
||||
## Tests To Write First
|
||||
- Shape function partition-of-unity and derivative tests.
|
||||
- Node order and tying-point coordinate tests.
|
||||
- Flat element normal and right-handed basis tests.
|
||||
- Fallback axis tests when `EY x Vn` is near zero.
|
||||
- Invalid geometry diagnostic tests.
|
||||
|
||||
## Reference Artifacts
|
||||
- None.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Geometry matches `docs/MITC4_FORMULATION.md`.
|
||||
- The old averaged-edge basis is not used as the binding formulation.
|
||||
- No stress/strain or stiffness logic is slipped into this step.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record MITC4 geometry readiness in `PROGRESS.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not silently support strongly warped/nodal-director behavior beyond the documented Phase 1 policy.
|
||||
@@ -0,0 +1,54 @@
|
||||
# Sprint Contract: MITC4 Covariant Strain Tying
|
||||
|
||||
## Objective
|
||||
Implement or rebuild the degenerated-continuum displacement interpolation, direct covariant strain rows, and MITC transverse shear tying interpolation.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
|
||||
## Scope
|
||||
- Implement five-DOF local displacement interpolation.
|
||||
- Transform global rotations to local `alpha`, `beta`, and `gamma`.
|
||||
- Compute direct covariant strain rows in documented internal strain order.
|
||||
- Replace `eps_13` and `eps_23` with midside MITC tying interpolation.
|
||||
- Add finite-difference tests for strain rows.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not integrate stiffness.
|
||||
- Do not add material transform.
|
||||
- Do not compute MITC shear from Cartesian `gamma_xz` and `gamma_yz` first.
|
||||
|
||||
## Tests To Write First
|
||||
- Local rotation transform tests for `alpha`, `beta`, `gamma`.
|
||||
- Displacement interpolation tests at midsurface and through-thickness points.
|
||||
- Direct covariant strain finite-difference tests.
|
||||
- Tying-row tests at `A`, `B`, `C`, and `D`.
|
||||
- Gauss-point MITC shear interpolation tests proving rows come from tying rows.
|
||||
|
||||
## Reference Artifacts
|
||||
- None.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- Strain vector ordering is documented or explicitly permuted.
|
||||
- `gamma` does not contribute to physical continuum strain.
|
||||
- FESA sign convention for `A/C/B/D` is tested.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record strain/tying readiness in `PROGRESS.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not reintroduce direct Gauss-point transverse shear for MITC rows.
|
||||
@@ -0,0 +1,54 @@
|
||||
# Sprint Contract: MITC4 Material Integration
|
||||
|
||||
## Objective
|
||||
Implement or rebuild local plane-stress material behavior, shear correction, material transformation, and `2 x 2 x 2` Gauss integration scaffolding.
|
||||
|
||||
## Required Reading
|
||||
- /AGENTS.md
|
||||
- /docs/MITC4_FORMULATION.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
|
||||
## Scope
|
||||
- Implement isotropic linear elastic shell material matrix with `sigma_33 = 0` and `kappa = 5/6`.
|
||||
- Define material/strain ordering tests.
|
||||
- Implement or verify convected-to-local material transformation for Phase 1 cases.
|
||||
- Add `2 x 2 x 2` integration point and weight infrastructure.
|
||||
|
||||
## Allowed Files
|
||||
- `include/`
|
||||
- `src/`
|
||||
- `tests/`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
|
||||
## Explicit Non-Goals
|
||||
- Do not add composite sections.
|
||||
- Do not add stress/strain output recovery as mandatory output.
|
||||
- Do not switch to analytic thickness integration without equivalence tests and doc update.
|
||||
|
||||
## Tests To Write First
|
||||
- Isotropic matrix value tests for known `E`, `nu`, and `kappa`.
|
||||
- Shear row ordering tests.
|
||||
- Integration point count and weights tests.
|
||||
- Flat element material transform identity/equivalence tests.
|
||||
- Invalid material/thickness diagnostic tests if not covered earlier.
|
||||
|
||||
## Reference Artifacts
|
||||
- None.
|
||||
|
||||
## Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Evaluator Checklist
|
||||
- `2 x 2 x 2` integration is the active baseline.
|
||||
- Material transform behavior is tested.
|
||||
- No reduced integration or hourglass logic is introduced.
|
||||
|
||||
## Handoff Requirements
|
||||
- Record material and integration readiness in `PROGRESS.md`.
|
||||
|
||||
## Do Not
|
||||
- Do not make S4R assumptions in material or integration code.
|
||||
+5
-1
@@ -3,7 +3,11 @@
|
||||
{
|
||||
"dir": "1-linear-static-mitc4",
|
||||
"status": "blocked",
|
||||
"blocked_reason": "P1-15 stored-reference regression needs at least one Phase 1-compatible Abaqus TYPE=S4 input and matching displacement CSV; quad_01 remains S4R/NLGEOM provenance only."
|
||||
"blocked_reason": "Superseded by 1-linear-static-mitc4-rebaseline after the MITC4 formulation reset. Keep this phase as historical execution record; do not resume old P1-15/P1-16 without an explicit recovery decision."
|
||||
},
|
||||
{
|
||||
"dir": "1-linear-static-mitc4-rebaseline",
|
||||
"status": "pending"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user