57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
# 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.
|