feat: implement phase 1 solver baseline

This commit is contained in:
NINI
2026-05-01 02:59:28 +09:00
parent 10f1436e0f
commit c5be1f988c
13 changed files with 1960 additions and 84 deletions
+18
View File
@@ -146,3 +146,21 @@
**이유**: 사용자가 첫 reference case로 `references/quad_01.inp``references/quad_01_displacements.csv`를 제공했다. CSV는 사람이 검토하기 쉽고, 초기 parser/solver 검증 harness에서 HDF5 writer가 완성되기 전에도 `U` field 비교를 자동화하기 좋다.
**트레이드오프**: CSV는 HDF5보다 metadata 표현력이 약하다. 따라서 Abaqus version, unit note, unsupported keyword note, tolerance는 `references/README.md`, case manifest, 또는 추후 metadata 파일에 보강해야 한다. `quad_01.inp`처럼 `S4R`, `Part/Assembly/Instance`, `NLGEOM=YES`를 포함하는 reference input은 저장 reference로 보존하되 Phase 1 parser 지원 범위를 자동으로 확장하지 않는다.
---
### ADR-017: CMake and CTest Phase 1 Build Harness
**결정**: Phase 1의 기본 빌드 및 테스트 harness는 CMake와 CTest를 사용한다. `scripts/validate_workspace.py``CMakeLists.txt`를 발견하면 configure, build, CTest 순서로 검증을 수행한다.
**이유**: FESA의 핵심 구현 언어는 C++17 이상이고, Phase 1은 외부 solver library 없이도 core/parser/DOF/result/comparator/element tests를 반복 실행해야 한다. CMake/CTest는 Visual Studio/MSVC와 다른 C++ toolchain 모두에서 표준적인 최소 공통 경로를 제공한다.
**트레이드오프**: oneAPI MKL, TBB, HDF5 adapter가 추가될 때 CMake dependency discovery가 더 복잡해진다. 대신 Phase 1에서는 외부 API를 core에 노출하지 않고 deterministic test adapter로 검증을 시작할 수 있다.
---
### ADR-018: Phase 1 MITC4 Baseline Closure
**결정**: Phase 1 MITC4 baseline은 `docs/MITC4_FORMULATION.md`의 closed baseline decisions를 따른다. 핵심 결정은 midside transverse shear tying interpolation, averaged-edge local shell basis, 2x2 Gauss integration, `drilling_stiffness_scale = 1.0e-6`, 그리고 mandatory result output을 `U``RF`로 제한하는 것이다.
**이유**: MITC4 element implementation은 문서화된 baseline 없이 시작하면 reference 검증 전 수치 drift가 생기기 쉽다. Phase 1은 Abaqus S4 reference artifact가 아직 부족하므로, 작고 검증 가능한 baseline을 먼저 고정하고 element-level tests와 internal equilibrium tests로 보호한다.
**트레이드오프**: 이 baseline은 첫 구현을 안정화하기 위한 보수적 선택이며 Abaqus S4 reference 통과 후 drilling scale, warped-quadrilateral basis, stress/strain recovery, and shell resultant outputs may need refinement. `S4R`, reduced integration, and hourglass control remain out of scope.