docs: organize project guidance and module contracts

This commit is contained in:
KOKO\Mimi
2026-09-29 00:34:57 +09:00
parent 73db138566
commit a3502c9b97
50 changed files with 1748 additions and 414 deletions
+17
View File
@@ -0,0 +1,17 @@
# Abaqus 입력 adapter
이 영역은 physical source·syntax·scope·default를 검증된 Domain 정의로 mapping한다.
Abaqus 전체 호환성이나 내부 요소·해법 동등성을 목표로 하지 않는다.
- Raw text/빈 field/source line과 canonical lookup을 구별한다. ASCII case 처리,
keyword continuation, physical line 제한과 duplicate parameter 거부를 유지한다.
- 지원 여부는 procedure별 allowlist로 판단한다. 무해한 출력 요청의 no-op 예외를
model-affecting keyword로 확대하지 않는다. INCLUDE를 자동으로 열지 않는다.
- Instance·label·set·section/material target은 결정적으로 해소한다. 모호한 이름을
첫 일치값으로 선택하거나 missing 물성을 default로 채우지 않는다.
- S4/S4R source 표기를 보존하되 FESA 내부 적분 선택값으로 사용하지 않는다.
Source step 이름과 canonical result storage 이름도 구분한다.
- Procedure 선택 후 density·BC·하중·출력 요청의 조합을 검사한다. Static의 관대한 no-op을
HHT/eigen에 복사하지 않는다.
- Valid minimal 입력과 각 keyword의 위치·arity·range·unknown parameter·중복·nonfinite·
cross-instance·여러 step 실패를 검증한다. Parser 수용만으로 새 기능 완료를 선언하지 않는다.
+15
View File
@@ -0,0 +1,15 @@
# HDF5 출력 adapter
이 영역은 검증된 state를 영속 schema로 기록하고 readback·close·최종 교체를 수행한다.
새 물리량의 정의와 acceptance 기준을 writer 편의로 바꾸지 않는다.
- Procedure와 version을 함께 식별한다. Eigen의 additive discriminator와 static/dynamic
frame 의미를 구분하고 기존 필수 dataset을 optional로 바꾸지 않는다.
- Fixed-width little-endian 수치, UTF-8 문자열, compound field 이름·shape·component·unit·
coordinate/location과 source identity를 보존한다. C++ padding을 file contract로 쓰지 않는다.
- 임시 candidate에 기록·self-check·close한 뒤 final을 교체한다. 실패한 frame·write·close가
기존 final HDF5를 손상시키지 않아야 한다. State commit과 file finalize는 별개다.
- Source step 이름을 path로 직접 넣거나 node row를 source label로 해석하지 않는다.
Auxiliary acceleration·generalized force를 physical 결과 이름으로 바꾸지 않는다.
- Mandatory field/attribute·shape·dtype·ordering·nonfinite·version 거부, readback과 각
failure boundary를 검증한다. Reference artifact를 writer 결과에 맞춰 수정하지 않는다.