add documents

This commit is contained in:
KOKO\Mimi
2026-10-18 15:06:44 +09:00
parent 945d899b2f
commit 43867d0b3d
22 changed files with 913 additions and 10 deletions
+29 -5
View File
@@ -1,6 +1,6 @@
# FESA Structural Solver
FESA는 개인 연구를 위해 개발하는 유한요소 구조해석 솔버이며 외부 사용자 배포를 장기
FESA는 로컬에서 실행하는 개인 연구용 유한요소 구조해석 솔버이며 외부 사용자 배포를 장기
목표로 한다. C++17 이상·Windows MSVC·직접 MSBuild와 CMake/CTest를 사용하고 승인된 Abaqus 입력
subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존재와 기능 검증 완료는 다르다.
@@ -12,6 +12,28 @@ subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존
├── CLAUDE.md → 같은 내용의 작업 진입점
├── docs/
│ ├── README.md → 기능별 기술 요약 색인
│ ├── architecture.md → 구성 요소·의존 방향·실행 흐름
│ ├── business-rules.md → 물리량·상태 전이·수치 판정 규칙
│ ├── security.md → 로컬 실행·파일 보호·권한 경계
│ ├── standards.md → 개발·의존성·검증의 필수 기준
│ ├── engineering-notes.md → 재현된 함정과 대응 방법
│ ├── operations.md → 환경 준비·빌드·실행·검사 절차
│ ├── contracts.md → CLI·입력·결과·실패의 외부 계약
│ ├── tracking/
│ │ ├── status.md → 구현과 실제 검증 상태
│ │ ├── decisions/ → 대안·선택 이유·영향
│ │ │ ├── index.md → 결정 기록 목록
│ │ │ ├── 0001-input-subset.md → 입력 표기와 알고리즘 구분
│ │ │ ├── 0002-typed-ownership.md → 정의와 실행 상태 소유권
│ │ │ ├── 0003-ordered-reduction.md → 병렬 누적 순서
│ │ │ ├── 0004-candidate-output.md → 검증 뒤 최종 파일 공개
│ │ │ ├── 0005-eigen-comparison.md → 한정된 고유치 비교 예외
│ │ │ ├── 0006-thermal-diagnostic.md → NT11 진단 분류
│ │ │ ├── 0007-local-build-paths.md → 두 빌드 경로와 로컬 의존성
│ │ │ ├── 0008-shell-inertia.md → Shell 질량 영공간
│ │ │ ├── 0009-hex8-numerics.md → Hex8 강성·질량·정밀도
│ │ │ └── 0010-thermal-discretization.md → 두께 온도와 시간적분
│ │ └── findings.md → 재현 조건과 해결하지 못한 문제
│ ├── development-context.md → 읽기 범위와 컨텍스트 예상량
│ ├── solver-core/README.md → 공통 구조·I/O·수치 기준·빌드 방법
│ └── <feature-id>/ → 기능 요약과 formulation 원문
@@ -64,6 +86,8 @@ subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존
## 작업 전 확인
먼저 [기능 색인](docs/README.md), 변경할 기능의 README와 해당 영역의 AGENTS.md를 확인한다.
공통 개발 기준은 [standards](docs/standards.md), 재현된 함정은
[engineering-notes](docs/engineering-notes.md)에서 확인한다.
[솔버 공통 요약](docs/solver-core/README.md)은 아래 변경 성격에 해당하는 절을 읽는다.
색인의 다른 기능·연구 이력·대형 이관 자료를 일괄 필독으로 확장하지 않는다.
같은 문맥에서 읽고 바뀌지 않은 자료는 다시 읽지 않는다.
@@ -72,6 +96,7 @@ Public header 변경은 대응하는 src 영역의 책임과 consumer까지 확
- 범위·physics·절차 변경: 기능 요약의 채택 범위·구현 한계와 관련 formulation 절의
유도·가정·검증 요구를 함께 확인한다.
- 입력·결과·비교 변경: 공통 I/O·수치 기준과 해당 기능의 identity·reference mapping을 확인한다.
외부 호출·schema 변경은 contracts, 로컬 파일 권한·공유 변경은 security도 확인한다.
- C++ 구현: 공통 요약의 코딩 규약, 해당 영역 지침과 행동을 검증할 검사를 확인한다.
- 빌드 변경: 실제 preset·target graph·dependency와 명령의 side effect를 실행 전에 확인한다.
- 기능 재개: 해당 기능 요약의 현재 구현·검증·미해결 범위를 대조한다.
@@ -89,7 +114,8 @@ Public header 변경은 대응하는 src 영역의 책임과 consumer까지 확
근거와 영향을 알린다. 자동으로 tolerance를 완화하거나 데이터를 복구·보정하지 않는다.
나머지 문제는 현재 owner가 관련 범위에서 해결한다. 지금 해결할 수 없는 문제는 재현 조건,
영향, 해결하지 못하는 이유와 다음 접근을 해당 기능 요약의 미해결 항목에 기록한다.
영향, 해결하지 못하는 이유와 다음 접근을 docs/tracking/findings.md에 기록한다.
기능별 요약의 기존 기술적 한계도 함께 일치시킨다.
새 근거나 변경 없이 같은 명령·agent 호출을 반복하지 않는다.
문서만 변경하면 정적 검토를 하고 build/test를 실행하지 않는다. 동작 변경은 관련 검사부터,
@@ -98,7 +124,5 @@ Public header 변경은 대응하는 src 영역의 책임과 consumer까지 확
직접 MSBuild가 주 개발 빌드이며 CMake/Ninja는 같은 제품·검사 source를 사용하는 보조 경로다.
실제 명령·환경·`.build/native/Debug` 및 `.build/cmake-debug` 출력은 solver-core를 따른다.
두 경로의 전체 검사 등록과 실제 실행 범위를 구분하고 별도 Python·reference 결과를 기록한다.
2026-10-18 병합의 한정 검증 결과와 미검증 범위는
[병합 현황](docs/cpp-object-oriented-modular-refactoring/README.md#병합-결과와-검증-범위)을 따른다.
당시 한정 실행으로 이후 일반 솔버 기능의 전체 검증 의무를 대체하지 않는다.
과거 작업의 한정 실행으로 이후 일반 솔버 기능의 전체 검증 의무를 대체하지 않는다.
`reference/temp`는 검증에 사용하지 않는다. 정식 자료 누락은 미완료로 기록하고 통과로 바꾸지 않는다.