diff --git a/docs/requirements/linear-static-mitc4-shell.md b/docs/requirements/linear-static-mitc4-shell.md new file mode 100644 index 0000000..157d46c --- /dev/null +++ b/docs/requirements/linear-static-mitc4-shell.md @@ -0,0 +1,292 @@ +# Linear Static MITC4 Shell Requirements + +## Metadata + +- feature_id: `linear-static-mitc4-shell` +- title: `Linear Static MITC4 Shell` +- status: `approved` +- owner_agent: `requirement-agent` +- date: `2026-08-11` +- approval_basis: 사용자와 확정한 선형 정적 범위, `S4`/`S4R` 매핑, 6자유도 외부 계약, drilling 안정화, 자동 director 생성, 결과 및 검증 계약 +- current_product_state: `requirements-approved-not-implemented` +- formulation_alignment: `docs/formulations/mitc4-shell-formulation.md`는 선행 draft이며 이 baseline의 6자유도 및 drilling 계약에 맞춘 후속 개정이 필요함 +- declared_reference_candidate: 사용자가 `reference/shell/`에 Abaqus `S4R` 모델을 추가했다고 `2026-08-11`에 선언함 +- reference_inventory_state: 요구조건 작성 시점의 workspace에서는 `reference/shell/`이 관찰되지 않아 exact artifact inventory는 `needs-reference-artifacts`로 유지함 + +## Purpose + +이 baseline은 승인된 Abaqus `.inp` subset의 4절점 `S4` 또는 `S4R` 요소를 +FESA의 단일 MITC4 formulation으로 매핑하고, 소변형·소회전 선형 정적 해석을 수행해 +검증 가능한 절점 및 쉘 요소 결과를 authoritative `results.h5`에 기록하는 다음 +end-to-end 기능을 정의한다. + +FESA는 Abaqus `S4` 또는 `S4R` formulation을 재현한다고 주장하지 않는다. 두 source +element type은 같은 FESA MITC4 formulation으로 매핑하며 source type과 internal +formulation identity를 분리해 보존한다. Abaqus reference comparison은 병진변위 +`U1/U2/U3`만 pass/fail에 사용하고 회전 `UR1/UR2/UR3`은 비차단 warning evidence로 +사용한다. + +이 문서의 승인은 MITC4가 현재 제품에 구현되었다는 뜻이 아니다. Research, +Formulation, Numerical Review, I/O, Reference Model, Implementation Planning 및 이후 +검증 gate가 순서대로 완료되어야 제품 기능이 된다. + +## Source Basis + +- 사용자 승인 결정: 선형 정적 실행 범위, `S4`/`S4R` 공통 MITC4 매핑, 전역 6자유도, + 비물리 drilling 안정화, 자동 두께방향 director, 단일층 등방성 재료, 필수 결과와 + displacement 중심 reference 판정 +- `docs/reference-papers/MITC4/`: MITC4 director kinematics, assumed transverse shear, + 5-DOF physical kernel, 6-DOF transformation/stabilization 사례 및 shell benchmark 근거 +- `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`: end-to-end feature boundary, + ownership, linear-static lifecycle, deterministic assembly, HDF5, reference immutability 및 + failure atomicity +- `docs/formulations/mitc4-shell-formulation.md`: 후속 정렬이 필요한 선행 draft이며 이 + approved requirements baseline을 변경하는 근거로 사용하지 않음 + +## In Scope + +- 입력 파일당 하나의 `*STEP, *STATIC` 선형 정적 해석 +- small displacement와 small rotation +- 4절점 bilinear quadrilateral MITC4 shell +- Abaqus source element type `S4`와 `S4R`의 동일한 FESA MITC4 매핑 +- 절점당 전역 자유도 `[UX, UY, UZ, URX, URY, URZ]` +- 3개 병진과 director 접평면 회전 2개로 구성된 물리 MITC4 kernel +- 비물리 local drilling 회전 1개에 대한 작은 scale-aware 수치 안정화 +- 막, 굽힘, 횡전단 및 이들의 coupling +- 단일층, 균질 등방성 선형 탄성 +- element set별 일정한 양의 두께와 하나의 material을 갖는 `*SHELL SECTION` +- 평면 및 매끄러운 곡면을 근사하는 유효한 사각형 mesh +- midsurface geometry와 element connectivity로부터 초기 두께방향 unit director 자동 생성 +- DOF 1~6의 nodal `*BOUNDARY`와 nodal `*CLOAD` +- deterministic assembly와 기존 linear-static partition/factorization/substitution lifecycle +- HDF5 nodal displacement/reaction, shell generalized strain/resultant, in-plane stress, residual 및 energy output +- element invariant, patch, locking, distortion, curved-shell, reference 및 physics verification + +## Out Of Scope + +- Abaqus full compatibility 또는 Abaqus `S4`/`S4R` formulation equivalence 주장 +- Abaqus reduced-integration, hourglass-control 또는 finite-membrane-strain 의미의 재현 +- `S3`, `S8`, `S8R`, continuum shell, solid-shell 및 axisymmetric shell +- 다중 step과 step 간 load, boundary 또는 state propagation +- 기하비선형, 재료비선형, 좌굴, modal, dynamic, contact 및 thermal analysis 실행 +- composite/laminated shell, orthotropic material, layer orientation 및 층별 integration output +- variable/nodal/distributed thickness, section offset 및 thickness stretch DOF +- explicit nodal normal/director input과 user-defined shell orientation +- shared source node에서 불연속 director를 요구하는 sharp fold, hinge 또는 shell-beam joint +- `*DLOAD`, pressure, gravity, body force, edge traction, follower load 및 current-normal load +- drilling 방향의 nodal moment를 물리 하중으로 취급하는 동작 +- `S13/S23` section-point stress와 `S33` stress recovery +- Abaqus reaction, stress, strain 또는 section resultant equality를 release pass/fail로 사용하는 비교 +- Abaqus, Nastran 또는 다른 reference solver 실행과 reference artifact 생성·수정·복원 + +## Analysis Definition + +- analysis_type: single-step linear static +- kinematics: small displacement, small rotation, fixed initial geometry/director +- element: four-node bilinear quadrilateral MITC4 shell +- source_element_types: Abaqus `S4`, `S4R` +- internal_formulation: one FESA MITC4 formulation independent of source type +- nodal_dofs: global `[UX, UY, UZ, URX, URY, URZ]` +- physical_local_dofs: three translations and two director-tangent rotations per node +- numerical_local_dof: one nonphysical drilling rotation per node +- deformation_modes: membrane, bending, transverse shear, and coupling +- material_model: single-layer homogeneous isotropic linear elasticity from `E` and `nu` +- section_model: one constant positive thickness and one material per assigned element +- boundary_conditions: nodal essential constraints on global DOFs 1 through 6 +- loads: nodal concentrated force/moment; drilling-direction moment excluded +- initial_director: deterministic geometry-derived positive-thickness unit vector +- units: user-consistent unit system; no unit system inferred from `.inp` +- authoritative_output: HDF5 `results.h5` +- reference_pass_fail: global translational displacement `U1/U2/U3` +- reference_warning_only: global nodal rotation `UR1/UR2/UR3` + +## Input Requirements + +- **FESA-REQ-LSMITC4-001** — The solver shall accept exactly one `*STEP` containing `*STATIC` and shall reject a second analysis step or a non-linear/non-static procedure with a structured unsupported diagnostic. +- **FESA-REQ-LSMITC4-002** — The semantic mapper shall map both `*ELEMENT, TYPE=S4` and `*ELEMENT, TYPE=S4R` to the same FESA MITC4 formulation without claiming Abaqus formulation equivalence. +- **FESA-REQ-LSMITC4-003** — The model and result metadata shall preserve the source element type separately from the internal `FESA-MITC4` formulation identity. +- **FESA-REQ-LSMITC4-004** — Each accepted shell element shall contain exactly four distinct source nodes in the documented bilinear quadrilateral order, and the original source element identity shall remain stable through diagnostics and results. +- **FESA-REQ-LSMITC4-005** — Each shell node shall expose global DOFs `[UX, UY, UZ, URX, URY, URZ]` in that exact order; equation IDs shall not be stored in Node or Element records. +- **FESA-REQ-LSMITC4-006** — The material subset shall accept homogeneous isotropic `*ELASTIC` data containing `E` and `nu`, require finite `E > 0` and `-1 < nu < 0.5`, and reject temperature/field dependence and unsupported material behavior. +- **FESA-REQ-LSMITC4-007** — The section subset shall accept a single-layer `*SHELL SECTION, MATERIAL=` with one finite constant thickness `t > 0` per section assignment. +- **FESA-REQ-LSMITC4-008** — Every active shell element shall resolve to exactly one shell section and exactly one material; missing, conflicting, duplicate or unresolved assignments shall be model errors. +- **FESA-REQ-LSMITC4-009** — A model may contain multiple element sets, constant-thickness shell sections and isotropic materials, but every individual element shall remain single-layer and homogeneous. +- **FESA-REQ-LSMITC4-010** — Composite data, section offset, distributed/nodal thickness, explicit director/normal input and user-defined material orientation shall be rejected as unsupported rather than ignored. +- **FESA-REQ-LSMITC4-011** — The initial nodal director shall be a dimensionless unit vector in the positive thickness direction; scalar thickness shall remain a separate property and shall not be encoded in the director magnitude. +- **FESA-REQ-LSMITC4-012** — The positive element normal candidate shall be derived deterministically from the source node order and midsurface covariant tangent cross product. +- **FESA-REQ-LSMITC4-013** — At a smooth shared node, consistently oriented incident element normal candidates shall be combined by deterministic area-weighted averaging and normalized to form the common nodal director. +- **FESA-REQ-LSMITC4-014** — Zero/near-zero normal candidates, a zero/near-zero averaged director, opposing incident orientations, and a fold sharper than the approved smooth-patch criterion shall fail model validation. +- **FESA-REQ-LSMITC4-015** — A physical fold or hinge shall be represented with duplicated source nodes so each smooth shell patch owns a separate director; the solver shall not silently average a discontinuous director field. +- **FESA-REQ-LSMITC4-016** — Element geometry validation shall reject duplicate nodes, self-intersection, nonfinite coordinates, degenerate area, and nonpositive or near-singular Jacobians at every formulation-required Gauss and tying location. +- **FESA-REQ-LSMITC4-017** — The solver shall support nodal `*BOUNDARY` targets resolved by source node label or node set for global DOFs 1 through 6, including existing zero and nonzero prescribed-displacement semantics. +- **FESA-REQ-LSMITC4-018** — The solver shall support nodal `*CLOAD` forces on DOFs 1 through 3 and nodal moments on DOFs 4 through 6 after deterministic aggregation in global coordinates. +- **FESA-REQ-LSMITC4-019** — The aggregated nodal moment component parallel to the approved nodal director shall be rejected as `unsupported-drilling-load`; a drilling-direction moment shall not be carried only by numerical stabilization. +- **FESA-REQ-LSMITC4-020** — `*DLOAD`, pressure, gravity, body force, edge traction and follower load shall remain unsupported at parser/CLI level even if a formulation-only equivalent-load kernel is later tested. +- **FESA-REQ-LSMITC4-021** — The accepted parser subset shall include the existing identity-preserving node, set, material, assembly, boundary, load and single-static-step keywords plus `*ELEMENT, TYPE=S4|S4R` and the approved single-layer `*SHELL SECTION` subset. +- **FESA-REQ-LSMITC4-022** — Identity `*PART/*ASSEMBLY/*INSTANCE` wrappers and multiple identity instances shall preserve `SourceEntityId`; instance transforms, nested assembly and dependent/independent mesh semantics shall remain unsupported unless separately approved. +- **FESA-REQ-LSMITC4-023** — Output-request keywords in the existing no-op allowlist shall not alter mandatory FESA results, and unsupported model-affecting keywords outside the allowlist shall be errors. + +## Architecture and Execution Requirements + +- **FESA-REQ-LSMITC4-024** — `Domain` shall own parsed shell elements, material/section assignments, source identity and initial directors; `AnalysisModel` shall expose the active single-step view without copying Domain objects. +- **FESA-REQ-LSMITC4-025** — `DofManager` alone shall own six-DOF node definitions, full/free equation numbering, constraint mappings, shell scatter maps and sparse-pattern ownership. +- **FESA-REQ-LSMITC4-026** — Linear-static `AnalysisState` shall own only the solution, force/residual/reaction, shell recovery and energy rows needed by this procedure and shall not preallocate nonlinear director history, iteration state, velocity or acceleration. +- **FESA-REQ-LSMITC4-027** — Element-local shell calculations shall use independent buffers and global sparse assembly shall preserve stable source-element ordering, deterministic COO ordering and fixed reduction independent of thread count. +- **FESA-REQ-LSMITC4-028** — The linear-static lifecycle shall assemble and partition stiffness, factorize `Kff`, then assemble loads, form `Ff-Kfc*dc`, substitute, reconstruct the full displacement, recover the full residual and only then commit results. +- **FESA-REQ-LSMITC4-029** — Constrained reactions and free-equilibrium evidence shall be recovered from the assembled full residual `K*d-F`; the shell feature shall not define reaction by separately summing recovered element resultants. +- **FESA-REQ-LSMITC4-030** — `S4` and `S4R` source elements with identical geometry, properties, constraints and loads shall execute the same FESA MITC4 numerical path; only preserved source metadata may differ. + +## Numerical Formulation Boundary Requirements + +- **FESA-REQ-LSMITC4-031** — The physical MITC4 kernel shall use three translations and two director-tangent rotations per node and shall not treat the drilling rotation as a physical strain variable. +- **FESA-REQ-LSMITC4-032** — The six-DOF element embedding shall transform global nodal rotations into two director-tangent components and one director-parallel drilling component using deterministic right-handed orthonormal frames. +- **FESA-REQ-LSMITC4-033** — The drilling contribution shall be symmetric, positive, scale-aware, sufficiently small to remain numerical, and sufficient to remove the nonphysical drilling null modes of otherwise valid models. +- **FESA-REQ-LSMITC4-034** — The drilling scale shall be derived from dimensionally compatible physical rotational stiffness; the implementation shall not apply `10^-3 * min(all Kii)` across mixed translational and rotational diagonal entries without an approved dimensional derivation. +- **FESA-REQ-LSMITC4-035** — Drilling stabilization shall not contribute to physical membrane, bending or transverse-shear generalized strain/resultant or section-point stress; its energy shall be recovered separately. +- **FESA-REQ-LSMITC4-036** — Exact drilling reference scale, dimensionless coefficient and acceptable artificial-energy ratio shall be approved through Research and Numerical Review before Implementation Planning; no implementation-selected default may close this decision silently. +- **FESA-REQ-LSMITC4-037** — Source `S4R` shall not select reduced integration or Abaqus hourglass control; all accepted `S4` and `S4R` inputs shall use the single quadrature and MITC tying contract approved by the FESA formulation. +- **FESA-REQ-LSMITC4-038** — The stabilized element shall retain exactly six physical rigid-body modes within the approved normalized tolerance, preserve stiffness symmetry and coordinate-transformation energy, and have positive energy for every accepted non-rigid physical deformation mode. + +## Output Requirements + +- **FESA-REQ-LSMITC4-039** — The sole authoritative solver output shall be HDF5 `results.h5`; the writer shall validate and close a temporary candidate before replacing the final path and shall not leave an incomplete final file after failure. +- **FESA-REQ-LSMITC4-040** — Metadata/model output shall include schema and solver versions, source input identity, user-consistent unit label, global/local coordinate conventions, source element type, internal formulation, stable node/element identities, shell section/material identity and initial nodal director. +- **FESA-REQ-LSMITC4-041** — Every node shall have global displacement `[U1,U2,U3,UR1,UR2,UR3]` and full-residual reaction `[RF1,RF2,RF3,RM1,RM2,RM3]` rows in stable source identity order. +- **FESA-REQ-LSMITC4-042** — Every required shell integration location shall output local generalized strain components `[E11,E22,G12,K11,K22,K12,G13,G23]` with membrane/shear strain dimensionless and curvature dimension `1/length`. +- **FESA-REQ-LSMITC4-043** — The same shell locations shall output local section resultant components `[N11,N22,N12,M11,M22,M12,Q13,Q23]`, where `N` and `Q` have dimension `force/length` and `M` has dimension `force` as moment resultant per unit edge length. +- **FESA-REQ-LSMITC4-044** — Each required shell location shall output local in-plane stress `[S11,S22,S12]` at bottom, middle and top section positions with dimension `force/length^2`; `S33` shall be documented as the plane-stress assumption and `S13/S23` point stress shall not be emitted. +- **FESA-REQ-LSMITC4-045** — Result rows shall identify source element, integration/tying or recovery location, natural coordinates, section position, local frame/director and component order without averaging mismatched locations. +- **FESA-REQ-LSMITC4-046** — The output shall include free-DOF residual evidence, total force/moment equilibrium metrics, physical strain energy and drilling stabilization energy with dimension `force*length` and deterministic aggregation order. +- **FESA-REQ-LSMITC4-047** — Abaqus output requests shall neither suppress nor expand the mandatory HDF5 quantity inventory; any deterministic FESA CSV projection shall remain a debugging/review view rather than official solver output. +- **FESA-REQ-LSMITC4-048** — Nonfinite recovery values, inconsistent component/location inventory or failure to finalize required HDF5 rows shall fail the analysis without committing a partial successful state. + +## Verification Requirements + +- **FESA-REQ-LSMITC4-049** — Every production behavior shall follow project TDD `RED -> GREEN -> VERIFY`, have a related C++ test, and later pass MSVC x64 Debug CMake/CTest with no new warning; this requirements phase shall not run Harness or implementation validation. +- **FESA-REQ-LSMITC4-050** — Element invariant tests shall cover frame orthonormality/handedness, Jacobian sign, stiffness symmetry, coordinate-transformation energy invariance, six physical rigid modes, deformation-mode positivity and deterministic repeatability. +- **FESA-REQ-LSMITC4-051** — Normalized algebraic acceptance shall use `1e-12` for symmetry, frame orthonormality and transformation-energy invariance and `1e-10` for rigid-mode action, linear-system residual and global equilibrium unless Numerical Review approves and documents an evidence-backed scale-aware replacement before Implementation Planning. +- **FESA-REQ-LSMITC4-052** — Patch verification shall independently cover constant membrane strain/stress, pure bending, transverse shear and twist, including sign and component-order checks for generalized strain, resultant and recovered in-plane stress. +- **FESA-REQ-LSMITC4-053** — Locking/convergence verification shall include thin- and thick-shell or plate sequences over documented thickness ratios and mesh refinements and shall demonstrate the approved MITC4 transverse-shear behavior rather than judge one displacement on one mesh. +- **FESA-REQ-LSMITC4-054** — Geometry verification shall include planar, smoothly curved, distorted and warped valid elements plus negative tests for degenerate, inverted, self-intersecting, opposing-normal and sharp-fold topologies. +- **FESA-REQ-LSMITC4-055** — Curved-shell verification shall include at least one nodal-load-compatible pinched-cylinder, hemispherical-shell or equivalently justified benchmark; Scordelis-Lo may be included only with documented equivalent nodal loading inside the approved input subset. +- **FESA-REQ-LSMITC4-056** — Drilling verification shall vary the approved stabilization coefficient around its nominal value, confirm stable equation rank, report physical displacement/resultant sensitivity and enforce the approved drilling-to-physical energy warning criterion. +- **FESA-REQ-LSMITC4-057** — Physics verification shall check load/reaction balance, global moment balance, displacement direction, symmetry, energy positivity, result sign and consistency between assembled residual and recovered shell resultants. + +## Verification Quantities + +- nodal_displacement: required, global six components; `U1/U2/U3` reference pass/fail and `UR1/UR2/UR3` warning-only +- reaction: required, global six components from full residual; internal physics verification +- shell_generalized_strain: required, local eight components at documented locations +- shell_section_resultant: required, local `N/M/Q` eight components at documented locations +- stress: required, local bottom/middle/top `[S11,S22,S12]`; Abaqus equality comparison N/A +- residual: required, free-DOF and normalized global equilibrium evidence +- energy: required, separate physical strain and drilling stabilization energies +- modes_and_invariants: required, six physical rigid modes, symmetry, transformation invariance and positive deformation energy + +## Tolerance Policy + +- **FESA-REQ-LSMITC4-058** — Abaqus reference pass/fail shall apply only to matched global `U1/U2/U3` rows using `tolerance_c = absolute_floor_c + relative_coefficient_c * reference_scale_c`. +- **FESA-REQ-LSMITC4-059** — `reference_scale_c` shall be computed only from finite Abaqus values in the same model, step/frame, quantity and component group; reference values shall not be zero-clamped and row-specific relative denominators shall not replace the group scale. +- **FESA-REQ-LSMITC4-060** — MITC4 displacement absolute floors and relative coefficients shall not silently inherit the B33 numerical values; Reference Model shall propose dimensioned floors and coefficients from benchmark evidence and Numerical Review shall approve them before reference comparison implementation. +- **FESA-REQ-LSMITC4-061** — Global `UR1/UR2/UR3` rows shall be compared and fully reported but shall not affect pass/fail; errors beyond the approved large-error threshold shall emit deterministic nonblocking warnings and remain visible in known limitations. +- **FESA-REQ-LSMITC4-062** — The UR large-error threshold and drilling-energy warning ratio are `needs-downstream-decision` owned jointly by Reference Model and Numerical Review and shall be fixed before Implementation Planning. +- **FESA-REQ-LSMITC4-063** — Missing, extra, duplicate, nonfinite, schema-mismatched or source-identity-mismatched rows shall fail artifact/schema validation before numeric tolerance evaluation for both U and UR inventories. +- **FESA-REQ-LSMITC4-064** — The comparison report shall record each U/UR row decision, maximum absolute error, component-scale normalized error, RMS error, vector-norm error and worst source row/component; nonblocking UR warnings shall not be omitted from an otherwise passing report. + +## Reference Artifact Requirements + +The user-declared first candidate is `reference/shell/` and is said to contain an Abaqus +`S4R` model. At requirements-authoring time that directory was not visible in the shared +workspace, so no exact filename, schema, units, generator, step/frame or row inventory is +asserted here. The bundle shall remain read-only when it becomes observable. + +- **FESA-REQ-LSMITC4-065** — Reference Model shall inventory `reference/shell/` without creating, renaming, rewriting or repairing files and shall classify a missing/unobservable candidate as `needs-reference-artifacts` rather than fabricate its content. +- **FESA-REQ-LSMITC4-066** — A usable new reference bundle shall contain `model.inp`, `metadata.json` and `_displacements.csv`, or shall receive an explicitly approved legacy-alias contract that records its exact existing filenames without rename. +- **FESA-REQ-LSMITC4-067** — Reference metadata shall record Abaqus generator/version, creation provenance, source element type, model/step/frame identity, user unit system, global coordinate convention, section/material/thickness data, CSV schema and tolerance policy. +- **FESA-REQ-LSMITC4-068** — Artifact validation shall confirm an approved single `*STEP, *STATIC` model, expected `S4` or `S4R` source type, supported keyword subset, unique finite displacement rows and exact source-node/component identity before comparison. +- **FESA-REQ-LSMITC4-069** — End-to-end mapping evidence shall cover at least one `S4` input and at least one `S4R` input; the declared `reference/shell/` S4R model may satisfy only the S4R side after inventory validation, so separate S4 evidence remains required. +- **FESA-REQ-LSMITC4-070** — Reference verification shall compare FESA HDF5 global nodal displacement rows directly against Abaqus displacement CSV rows by model, step/frame, source node and component identity; a FESA-generated CSV view shall not become the authoritative comparison source. +- **FESA-REQ-LSMITC4-071** — Abaqus reaction, stress, strain and shell force/moment output may be retained as review evidence if present but shall not change the approved `U1/U2/U3` pass/fail boundary or become an undeclared equality gate. +- **FESA-REQ-LSMITC4-072** — FESA agents shall not execute Abaqus or another reference solver and shall not generate, modify, restore or normalize reference artifacts during requirements, research, formulation, implementation or verification unless a later phase explicitly authorizes that operation. + +## Requirement Verification Matrix + +Each range row below applies its verification method and acceptance criteria to every +individual requirement ID in that inclusive range; the ranges cover `001` through `072` +without gaps or overlap. + +| id range | requirement theme | category | source | priority | verification method | acceptance criteria | tolerance/decision owner | downstream agents | status | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| `001` | Single linear-static step | analysis | User approval; PRD/ADR linear-static lifecycle | must | Parser/semantic negative and CLI integration tests | One supported static step runs; other procedures or a second step fail deterministically | Exact procedure inventory | I/O Definition; Implementation Planning | approved | +| `002-004` | `S4`/`S4R` mapping and identity | input/model | User approval | must | Parser/semantic/HDF5 metadata tests | Both source types map to one MITC4 path and preserve distinct source metadata and four-node identity | Exact element/type identity | I/O Definition; Implementation Planning | approved | +| `005` | Six global nodal DOFs | model | User approval; project DOF convention | must | DofManager and HDF5 schema tests | Exact component order and no distributed equation ownership | Exact ordering | Formulation; I/O Definition; Implementation Planning | approved | +| `006-010` | Isotropic material and single-layer section | input/model | User approval | must | Parser, mapping and validation tests | Valid `E,nu,t` resolve once per element; excluded section/material meanings fail | Exact inequalities; finite values | Research; I/O Definition; Implementation Planning | approved | +| `011-016` | Initial director and geometry validity | geometry | User approval; MITC director kinematics | must | Geometry/unit/property-based tests | Deterministic unit directors for smooth valid meshes; every invalid topology fails | Smooth-angle and scale-aware Jacobian thresholds: Research + Numerical Review | Research; Formulation; Numerical Review; I/O Definition | approved-with-downstream-decision | +| `017-020` | Boundary and nodal-load subset | input/load | User approval | must | Parser/semantic/load tests | Global BC/CLOAD works; director-parallel moment and distributed loads fail | Drilling projection threshold: Numerical Review + I/O Definition | Formulation; I/O Definition; Implementation Planning | approved-with-downstream-decision | +| `021-023` | Parser subset, wrappers and no-op policy | input | User approval; ADR-003/013/018 | must | Parser diagnostic and semantic identity tests | Only approved meanings affect Domain; excluded meanings fail closed | Exact keyword/diagnostic inventory | I/O Definition; Implementation Planning | approved | +| `024-030` | Ownership, deterministic assembly and linear-static execution | architecture/execution | PRD; ADR-004/007/008/009/016/017 | must | Unit, orchestration and repeated-thread-count tests | Ownership boundaries, event order, residual reaction and deterministic bytes/rows match | `1e-12` deterministic numeric target where applicable | Numerical Review; Implementation Planning | approved | +| `031-038` | 5-DOF physics embedded in 6-DOF with drilling stabilization | numerical boundary | User approval; MITC literature and thesis 6-DOF discussion | must | Formulation review, element invariant, rank and energy tests | Physical outputs exclude drilling; stable system retains six physical rigid modes | Scale/coefficient/energy ratio: Research + Numerical Review | Research; Formulation; Numerical Review | approved-with-downstream-decision | +| `039-048` | Mandatory HDF5 output and failure atomicity | output | User approval; ADR-005/016/018 | must | Recovery, schema, identity, nonfinite and atomicity tests | Every quantity/location/unit/identity exists; failure commits no partial success | Exact component/location inventory; I/O Definition owns schema | Formulation; I/O Definition; Implementation Planning | approved | +| `049-057` | TDD, invariants, patch, locking, geometry, curved shell and physics | verification | User approval; shell benchmark evidence; project process | must | CTest evidence, analytical/patch/convergence reports and physics review | Every verification family has passing evidence before release | `1e-12` symmetry/frame; `1e-10` rigid/residual; convergence targets by Numerical Review | Research; Numerical Review; Reference Model; Implementation Planning | approved-with-downstream-decision | +| `058-060` | Translational displacement pass/fail tolerance | tolerance | User approval | must | Comparator unit/integration tests and report review | Every matched U row uses the approved mixed tolerance without clamp/omission | Floors/coefficient: Reference Model + Numerical Review | Reference Model; Reference Verification | approved-with-downstream-decision | +| `061-062` | Rotational warning and drilling-energy warning | tolerance/warning | User approval | must | Comparator/diagnostic tests and report review | UR never changes pass/fail; large error and energy ratio produce deterministic visible warnings | Thresholds: Reference Model + Numerical Review | Numerical Review; Reference Model; Reference Verification | approved-with-downstream-decision | +| `063-064` | Row/schema failure and report completeness | reference verification | User approval; ADR-005/014/018 | must | Negative comparator and report-schema tests | Invalid inventory fails before numeric comparison; all U/UR metrics remain visible | No ignored invalid rows | I/O Definition; Reference Verification | approved | +| `065-068` | `reference/shell` inventory and artifact validity | reference | User declaration; project artifact policy | must | Read-only inventory and schema/provenance review | Candidate becomes usable only after exact files, S4R type, provenance and row schema are validated | Current state `needs-reference-artifacts` | Reference Model | needs-reference-artifacts | +| `069-071` | S4/S4R coverage and displacement-only comparison | reference | User approval | must | Portfolio coverage and HDF5-to-CSV comparison | At least one model per source type; only U is blocking and UR is warning-only | Requirements `058-064` | Reference Model; Reference Verification; Physics Evaluation | approved-with-downstream-decision | +| `072` | Reference solver/artifact immutability | governance | User/project policy; ADR-010 | must | Process audit and Git diff | No unapproved execution or artifact mutation | Exact zero mutations | All downstream agents | approved | + +## Open Questions and Required Downstream Decisions + +No additional user scope decision is pending. The following technical values must remain visible +and be approved by their named downstream owners before Implementation Planning: + +1. Research and Numerical Review shall define a dimensionally consistent drilling reference stiffness, dimensionless coefficient range and nominal value. +2. Numerical Review shall approve the maximum drilling-to-physical strain-energy warning ratio and the displacement/resultant sensitivity criterion for coefficient variation. +3. Research and Numerical Review shall define the smooth-patch director angle criterion and scale-aware degenerate/Jacobian thresholds without an arbitrary `max(1, ...)` clamp. +4. Reference Model and Numerical Review shall define MITC4 U component absolute floors and relative coefficients in the approved mixed-tolerance form. +5. Reference Model and Numerical Review shall define the nonblocking UR large-error threshold and reporting severity. +6. Formulation shall fix quadrature, tying-point interpolation, shear correction, local axes, sign conventions and recovery locations consistent with this baseline. +7. `reference/shell/` shall be re-inventoried when visible. Until then its exact filenames, units, provenance and CSV schema are not established evidence. +8. Separate `S4` end-to-end evidence remains required even if the declared `S4R` candidate is valid. +9. The existing formulation draft's 5-DOF-only and no-drilling statements conflict with this approved baseline and shall be revised during the Formulation gate, not patched silently during implementation. + +## Downstream Handoff + +### Research Agent + +- Establish source-backed MITC4 linear kinematics, tying, quadrature, shear correction and benchmark applicability. +- Research dimensionally consistent 6-DOF drilling stabilization alternatives and sensitivity/energy criteria; distinguish the thesis's printed `10^-3 min(Kii)` rule from a FESA-approved scale-aware rule. +- Research nodal-director generation, smooth-patch angle handling and distorted/warped geometry limits. +- Identify nodal-load-compatible flat, locking, distorted and curved-shell benchmark families. + +### Formulation Agent + +- Revise `docs/formulations/mitc4-shell-formulation.md` to align with global 6-DOF input/output and a physical 5-DOF MITC4 kernel plus numerical drilling embedding. +- Keep current-product equations strictly linear static; retain geometric-nonlinear residual/tangent only as clearly separated future formulation. +- Define local frames, transformations, generalized component order, quadrature/tying, stress/resultant recovery, energy split and consistent units/signs. +- Do not introduce distributed-load product support or make `S4R` select reduced integration. + +### Numerical Review Agent + +- Independently review the revised formulation for rigid modes, rank, symmetry, invariance, locking, distortion, Jacobian/director validation and drilling contamination. +- Approve every downstream numerical threshold listed above before Implementation Planning. +- Require coefficient sensitivity and artificial-energy evidence rather than accepting a small coefficient by assertion. + +### I/O Definition Agent + +- Define the exact Abaqus keyword/data subset for `S4`, `S4R`, single-layer `*SHELL SECTION`, material, BC and CLOAD semantics. +- Define source identity, auto-director metadata, unsupported-drilling-load projection, diagnostics and exact HDF5 dataset/row schemas. +- Preserve source element type separately from FESA formulation and define bottom/middle/top stress location identity. + +### Reference Model Agent + +- Re-inventory the user-declared `reference/shell/` candidate read-only and report exact files, S4R identity, provenance, units, step/frame and CSV row schema or `needs-reference-artifacts`. +- Do not rename or repair noncanonical files; propose an explicit legacy alias only if retaining them is justified. +- Prepare coverage for both S4 and S4R, flat/thin/thick/distorted/curved response and the approved displacement-only blocking comparison. +- Propose evidence-backed U tolerance coefficients/floors and UR warning thresholds for Numerical Review approval. + +### Implementation Planning Agent + +- Do not start until Research, revised Formulation, Numerical Review, I/O and Reference Model contracts have resolved every named downstream decision. +- Trace every `must` requirement to RED/GREEN/VERIFY tests and preserve current solver ownership, deterministic assembly and failure-atomic HDF5 boundaries. +- Include independent tests for source-type mapping, auto directors, drilling rank/energy/sensitivity, all recovery quantities, schema failures and U-versus-UR comparison behavior.