eaa5cbeb21
Integrate Hex8 mass verification and fixed-null-basis shell dynamics with numerical and physics handoff evidence. Preserve interrupted reference and full-validation status; full integration validation is deferred until after performance optimization.
96 lines
6.3 KiB
Markdown
96 lines
6.3 KiB
Markdown
# FESA 해석의 의미와 제품 범위
|
|
|
|
## 목적과 사용자
|
|
|
|
FESA의 현재 목적은 개인 연구를 위한 유한요소 솔버 개발이다. 사용자는 요소·해법을
|
|
구현하는 개발자이면서 결과를 검증하는 해석자다. 외부 사용자 배포는 장기 목표이며,
|
|
배포 계획이 현재 지원 범위나 정확성 보장을 확대하지는 않는다.
|
|
|
|
제품 가치는 승인된 모델에서 물리적으로 설명 가능하고 재현 가능한 결과를 얻는 데 있다.
|
|
외부 입력을 읽었다는 사실이나 요소 행렬 하나를 계산했다는 사실만으로 기능을 완성했다고
|
|
판정하지 않는다. 입력 의미, 방정식, 해법, 결과와 독립 검증이 연결되어야 한다.
|
|
|
|
## 모델과 물리량
|
|
|
|
- Source label은 instance와 함께 입력의 대상을 식별한다. 내부 배열 위치나 equation
|
|
번호가 같다는 이유로 다른 instance의 같은 label을 합치지 않는다.
|
|
- 입력 단위는 사용자가 일관되게 선택한다. 좌표나 물성의 크기로 SI 단위를 추정하거나
|
|
자동 변환하지 않는다. 힘·길이·시간을 기본으로 쓰면 질량은 `force*time^2/length`다.
|
|
- 절점 변위, 회전, 단면력, 응력은 위치와 좌표계를 포함한 물리량이다. 요소 끝 작용력과
|
|
양의 local-x 단면력, 적분점 응력과 절점 평균 응력은 서로 대체할 수 없다.
|
|
- 유효한 재료·단면·연결 관계가 유일하게 결정되어야 해석한다. 누락된 재료를 다른
|
|
영역의 평균값으로 채우거나 잘못된 요소를 조용히 제거하지 않는다.
|
|
- 미지원 의미는 명확한 실패다. 출력만 제어하는 무해한 요청의 무시도 해당 해석 절차에서
|
|
허용한 조합에 한정한다. 한 절차의 예외를 다른 절차로 확대하지 않는다.
|
|
|
|
## 외부 솔버와의 관계
|
|
|
|
Abaqus `.inp`의 승인된 일부 문법을 입력으로 사용한다. `S4`와 `S4R`라는 source 표기를
|
|
보존하지만 FESA의 MITC4 정식화에 연결한다. Abaqus의 요소 내부 적분, 안정화, 상태 또는
|
|
결과 생성 알고리즘이 같다는 뜻이 아니다. 공개 결과의 수치적 일치는 허용되지만 내부
|
|
동등성을 증명하지 않는다.
|
|
|
|
기존 reference는 같은 `.inp` 모델로 생성한 외부 결과다. 비교 대상에는 CSV 외에
|
|
고유치 TXT도 있으며, 실제 필요한 원본 경로를 사용한다. Naming 규칙이나 추가 metadata를
|
|
맞추기 위해 기준 데이터를 변경하지 않는다.
|
|
|
|
## 정적 해석
|
|
|
|
선형 정적 해석에서 free/constrained 분할은 다음 관계를 보존한다.
|
|
|
|
\[
|
|
K_{ff}d_f=F_f-K_{fc}d_c,\qquad r=Kd-F.
|
|
\]
|
|
|
|
지정 변위는 해 복구 뒤에도 정확히 유지된다. `r`의 constrained 성분은 반력,
|
|
free 성분은 평형 잔차다. 모든 자유도가 지정된 유효한 모델은 빈 free 방정식을
|
|
갖는 해석이지 singular 모델이 아니다. 반력을 외력의 부호 반전만으로 계산하지 않는다.
|
|
|
|
비선형 정적 해석은 증가분마다 trial과 accepted 상태를 구분한다. 회전벡터에 대한
|
|
일반화 모멘트와 공간상의 물리 모멘트를 같은 성분으로 취급하지 않는다. 수렴한 변위만
|
|
있고 recovery나 상태 검증이 실패했다면 해당 증가분을 정상 결과로 공개하지 않는다.
|
|
|
|
물리 변형에너지와 수치 drilling 안정화 에너지는 구별한다. 안정화가 선형계를 풀 수 있게
|
|
했다는 사실을 물리 강성·에너지의 정확성 증거로 사용하지 않는다.
|
|
|
|
## 고유치와 동해석
|
|
|
|
현재 MITC4 고유치 해석은 원형상·무응력 선형 섭동의 고유쌍을 구한다. Consistent
|
|
질량에서 유도한 lumped 질량으로 해석·정규화·검증을 일관되게 수행한다. Source의
|
|
`EIGENSOLVER=LANCZOS`는 실제 FEAST 계산과 구별한다. 질량 영공간에 임의 질량을 더해
|
|
유한 모드로 바꾸지 않는다.
|
|
|
|
고유치와 HHT는 lumped mass를 사용한다. MITC4 HHT는 nodal kinetic measure의
|
|
일관 관성력·접선·운동에너지를, Hex8은 BC 축소 전 reference matrix 행합을 사용한다.
|
|
물리적 endpoint 가속도, 회전벡터의 시간 미분, 공간 각가속도,
|
|
알고리즘 보조 가속도를 구별한다. 어느 하나의 reference 일치로 다른 양의 시간수렴을
|
|
통과했다고 판정하지 않는다. 현재 shell 시간수렴에는 미해결 문제가 있다.
|
|
|
|
## 열해석의 채택 범위와 검증 경계
|
|
|
|
구현된 첫 범위는 shell의 단일 step uncoupled transient heat transfer다. 두께가 균질한
|
|
단면에 온도점 5개를 두고 면내 및 두께 방향 열전달을 다룬다. 상수 등방 전도도·밀도·비열,
|
|
영역별 재료·두께, 고정 시간 증분과 시간에 따라 일정한 입력이 합의된 범위다.
|
|
|
|
초기 온도는 절점마다 지정하되 그 절점의 두께 온도점에는 같은 값을 준다. 지정 온도와
|
|
절점 열률은 아랫면·윗면에 적용한다. Edge 열입력은 이번 공개 입력에서 연기했다.
|
|
온도·heat flux·반력 열률의 저장을 요구한다. 5개 온도점에서 source DOF 11은 아랫면,
|
|
13은 중앙면, 15는 윗면이다.
|
|
|
|
Q4 면내 보간과 두 구간의 이차 두께 보간, consistent 열용량, Backward Euler를 채택했다.
|
|
Raw 초기값·마지막 짧은 증분·geometry 근사·24개 flux trace와 영속 schema는
|
|
[Feature PRD](shell-transient-heat-transfer/PRD.md)의 상세 계약을 따른다. 원본 NT11 비교는
|
|
실제 수치 FAIL을 유지하는 진단 family이며 새 필수 reference가 준비 중이다.
|
|
장기 목표인 양방향 열-구조 연성은 현재 uncoupled 범위의 완료 조건에 포함하지 않는다.
|
|
|
|
## 수용과 실패
|
|
|
|
결과가 finite이고 방정식이 풀렸다는 것만으로 correctness를 인정하지 않는다. 해당
|
|
물리에 필요한 평형·반력·에너지·영모드·수렴·대칭성과 독립 비교를 확인한다. 외부
|
|
reference 오차 기준은 내부 잔차나 시간수렴 기준을 대신하지 않는다.
|
|
|
|
기준 데이터의 row 누락·추가·중복, 좌표·위치 불일치, nonfinite는 수치 오차 판정 이전의
|
|
실패다. 불일치를 평균하거나 임의의 `max(1, scale)` 및 zero clamp로 숨기지 않는다.
|
|
실패한 trial과 미완성 출력은 정상 결과가 아니며, 계약된 범위에서 기존 유효 상태와
|
|
최종 결과 파일을 보존한다.
|