add uncommitted files
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Step 1: Complete Result Contract
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/include/fesa/results/result_database.hpp`
|
||||
- `/include/fesa/elements/beam/beam3d2.hpp`
|
||||
- `/include/fesa/model/entity_origin.hpp`
|
||||
|
||||
## 작업
|
||||
|
||||
ResultDatabase에 element-end Beam 결과, local frame, model provenance와 diagnostics를
|
||||
추가한다.
|
||||
|
||||
```cpp
|
||||
struct BeamElementFrame final {
|
||||
ElementId element;
|
||||
EntityOrigin origin;
|
||||
BeamFrame local_frame;
|
||||
std::array<BeamSectionResult, 2> end_results;
|
||||
};
|
||||
struct ElementFrame final {
|
||||
std::vector<BeamElementFrame> beams;
|
||||
};
|
||||
```
|
||||
|
||||
- `ResultFrame`에 `ElementFrame element`를 추가한다.
|
||||
- node/element origin, field coordinate system, component labels와 ordering을 명시한다.
|
||||
- duplicate element/end node, wrong connectivity, nonfinite result, mismatched recovery
|
||||
point count를 실패 테스트로 먼저 작성한다.
|
||||
- LinearStaticAnalysis가 production recovery를 호출해 ResultDatabase를 채우게 한다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
cmake --build --preset windows-debug
|
||||
ctest --preset windows-debug -R "CompleteResultContract|ElementFrame" --output-on-failure
|
||||
ctest --preset windows-debug --output-on-failure
|
||||
```
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. result validation과 analysis integration test 실패를 확인한다.
|
||||
2. 의미 타입과 orchestration만 수정한다.
|
||||
3. element-end/node connectivity와 origin 보존을 assertion한다.
|
||||
4. 전체 테스트와 index를 갱신한다.
|
||||
|
||||
## 금지사항
|
||||
|
||||
- CSV-specific field를 ResultDatabase에 넣지 마라. 이유: 결과 semantic 모델을 오염시킨다.
|
||||
- history/velocity를 빈 구조로 추가하지 마라. 이유: Phase 1에서 사용하지 않는다.
|
||||
- recovery를 analysis 코드에 복제하지 마라. 이유: element kernel 계약을 재사용해야 한다.
|
||||
Reference in New Issue
Block a user