Communitygithub.com

test1card/femis-skill

An AI 에이전트 스킬로, AI 코딩 에이전트를 체계적인 FEM/CAE 해석자로 전환합니다: 실행 모드 게이트, GCI 메쉬 독립성, V&V를 통해 Ansys, Abaqus, Nastran, OpenFOAM, COMSOL 전반의 엔지니어링 주장을 관리합니다. 솔버 드라이버가 아닌 거버넌스 레이어입니다.

femis-skill란 무엇인가요?

이 스킬은 AI 코딩 에이전트(예: 클로드 코드, 커서 등)가 구조, 열, CFD, 다중물리 등 유한요소법(FEM) 및 CAE 해석을 엔드투엔드로 거버넌스할 수 있도록 설계되었습니다. 핵심 원칙은 이산화 오류(메쉬/시간 단계)가 해결되고, 양(QoI)이 수렴되었으며(특이점 제외), 엔지니어링 주장이 검증 및 확인(V&V)을 통해 증명된 경우에만 결과를 신뢰하도록 강제하는 것입니다. 이 스킬은 Ansys(Workbench, PyMAPDL, PyMechanical, Fluent, CFX, Maxwell), Siemens (Sincenter Nastran, NX), Abaqus, OpenFOAM, COMSOL, LS-DYNA 등 주요 CAE 플랫폼에서 작동하며, 솔버 드라이버(예: PyMAPDL, Abaqus 드라이버, CAE MCP)와 짝을 이루어 에이전트가 해석을 실행하고 이 스킬이 결과의 신뢰성을 결정합니다. 실행 모드(SMOKE, DEBUG, ENGINEERING, SIGNOFF)를 통해 결과의 성숙도를 제어하며, SMOKE/DEBUG 모드에서는 엔지니어링 주장을 금지하고 SIGNOFF에서는 완전한 GCI 연구를 요구합니다. 인간의 판단이 필요한 결정(예: 이상화 유형, 요소 선택, 접촉 유형, 하중 조건 등)은 자동화하지 않고 에이전트가 인간에게 에스컬레이션하도록 강제합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add test1card/femis-skill

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

FEM / CAE — 구조 · 열 · CFD · 다중물리

이 스킬은 엔지니어링 주장을 관리합니다 — 솔버를 구동하거나 설계를 승인하지 않습니다. 솔버 드라이버 / MCP(PyMAPDL, PyMechanical, Abaqus / OpenFOAM 드라이버, OASiS, CAE MCP)와 짝을 이루어 실행합니다; 이 스킬은 결과를 주장할 수 있는지, 어떤 수준에서, 그리고 인간이 결정해야 하는 시점을 결정합니다.

개요

유한요소법 및 CAE 해석을 엔드투엔드로 관리합니다. 실행자와 짝을 이루어 (PyMAPDL, PyMechanical, PyFluent, Abaqus/OpenFOAM 드라이버, CAE MCP — 아래 "거버넌스 레이어, 실행자 아님" 참조) 실행자는 설치된 솔버를 찾고, 입력 덱/스크립트를 구성하며 헤드리스/배치로 실행합니다; 이 스킬은 이상화 과정을 안내하고 감사하며, 로그를 읽어 수렴 여부를 확인하고, 결과를 검사/파싱하며, 모든 실행에서 전문 엔지니어링 관행(이상화 → 메싱 → 연결 → 해석 제어 → 수렴 → 메쉬 독립성 → V&V)을 강제합니다. 방법론은 솔버에 독립적입니다; 깊이 있는 예제는 Ansys / Simcenter / Thermal Desktop이며, Abaqus, LS-DYNA, MSC/Simcenter Nastran, COMSOL, OpenFOAM, Fluent, CFX, STAR-CCM+, CalculiX, Code_Aster로 폭을 넓힙니다 (references/software-landscape.md 참조).

핵심 원칙 (게이트로 강제):

  1. 이산화(메쉬/시간 단계) 오류가 해결되기 전까지는 어떤 결과도 신뢰하지 않습니다 — ENGINEERING 모드에서는 제한되고 명시되어야 하며(예: 마지막 정제 시 QoI 변화, 또는 단일 메쉬 ZZ/SPR 추정), SIGNOFF 모드에서는 점근 범위 내에서 GCI 연구를 통해 완전히 입증되어야 합니다. 오류 진술 없이 보고된 단일 메쉬 숫자는 결코 결과가 아닙니다. 아래 수렴 확인도 수행해야 합니다.
  2. 최대값이 아닌 관심 수량(QoI)을 수렴합니다 — 날카로운 모서리/집중 하중/균열 선단의 최대값은 결코 수렴하지 않는 특이점입니다.
  3. 대부분의 오류는 전처리에서 발생합니다(이상화, 경계 조건, 연결) — 이러한 결정을 우선시하십시오.
  4. 검증은 확인보다 먼저, 교정은 검증과 다릅니다 — 에이전트는 실행 증거 없이 승인을 주장해서는 안 됩니다.

이 SKILL.md가 라우터 역할을 합니다. 상세 내용은 references/에 있습니다 — 해당 주제가 관련될 때만 참조를 로드하십시오.

사용 시기

  • 구조(정적/모드/좌굴/비선형/명시적), 열(정상/과도/복사), CFD(RANS/LES, CHT), 전자기(저주파/고주파), 진동-음향/NVH, 다물체, 그리고 연계 다중물리(열-기계, 유체-구조 연성, 전자기-열).
  • 파손 및 내구성: 파괴/손상-내성, 피로(진동/스펙트럼 포함), 복합재료, 소성/셰이크다운/래칫팅, 좌굴 및 안정성, 충돌/충격/낙하.
  • 접촉, 열 접촉 저항, 볼트/용접/강체 연결; 메싱 및 메쉬 독립성(GCI); 요소/솔버/단위 선택.
  • 헤드리스/배치 해석 및 결과 파싱; 최적화, 교정, 역변수 식별/모델 업데이트.
  • V&V / 불확실성 정량화; 부구조화/ROM; 극저온/진공/우주선 열.
  • 에이전트가 자동화할 수 있는 것과 인간이 해야 하는 것을 결정 (다음 섹션).

적합하지 않은 경우: 순수 CAD 모델링 또는 간단한 수동 계산으로 더 잘 해결되는 문제.

★ 에이전트 기능 & 헤드리스-대-인간 계약

누가 무엇을 하는지 정확히 정의합니다. 범주: AGENT-HEADLESS(완전히 스크립트 가능/배치, GUI 불필요) · AGENT-VIA-API(Python/저널 API, 세션 + 라이선스 필요) · HUMAN-GUI(적어도 한 번은 대화형 필요) · HUMAN-JUDGMENT(에이전트가 단독으로 내려서는 안 되는 엔지니어링 결정) · LICENSE-GATED(라이선스 제한). 플랫폼별 전체 세부 정보: references/agent-automation-boundary.md.

작업분류방법 / 이유
CAD 가져오기AGENT-VIA-APIPyMAPDL/PyMechanical/run_journal이 STEP/Parasolid 가져오기
지오메트리 정리 / 대규모 디피처AGENT-VIA-API + HUMAN-JUDGMENT스크립트 가능한 디피처/핀치; 복잡한 수리 + 무엇을 디피처할지는 판단 필요
메싱AGENT-HEADLESS (Ansys) · SEED-IN-GUI (NX)PyMAPDL/PyMechanical 메싱은 완전 헤드리스; NX .fem/.sim 템플릿은 배치에서 해석되지 않음 → GUI에서 한 번 시드 생성 필요
재료 생성/할당AGENT-HEADLESS모든 플랫폼에서 스크립트 가능; 온도 의존 데이터 제공
접촉 / 연결AGENT-HEADLESS (구축) + HUMAN-JUDGMENT (유형)정의는 스크립트 가능; 본딩 대 마찰 / RBE2 대 RBE3은 엔지니어링 선택
경계 조건 및 하중AGENT-HEADLESS스크립트 가능; 에이전트가 하중 조건을 임의로 생성해서는 안 됨
최적화를 위한 매개변수 노출AGENT-HEADLESS (PyMAPDL *SET) · HUMAN-GUI (Workbench P#, NX Expressions, HEEDS 태그)매개변수화에 GUI가 필요 없는 것은 PyMAPDL뿐
해석 실행 (정상/과도/비선형)AGENT-HEADLESS + LICENSE-GATEDansys -b, nastran.exe, tmgnx, abaqus job=, fluent -g, OpenFOAM, cfx5solve -batch, starccm+ -batch
전자기 해석 (기계/RF/와전류)AGENT-VIA-API + LICENSE-GATEDPyAEDT (import ansys.aedt.core, non_graphical=True), COMSOL/getDP 배치; 포트/여기/스윕은 엔지니어링 설정
최적화 / DOE / 교정AGENT-HEADLESS (PyMAPDL+SciPy, optiSLang -b, HEEDS CLI) + GUI-AUTHOR-ONCEGUI에서 연구/태그를 한 번 작성한 후 헤드리스로 실행
결과 추출AGENT-HEADLESSPyDPF, pyNastran (.op2/.f06), .odb, SINDA .out, CGNS/VTK
후처리 이미지/플롯AGENT-HEADLESSpyvista 오프스크린, ParaView pvbatch
상관 / 모델 업데이트 (MAC, 노드 페어링)HUMAN-GUI대화형 시험↔해석 노드 페어링은 GUI 작업
템플릿 / .sim / 프로젝트 작성 (NX)HUMAN-GUI템플릿 레지스트리가 헤드리스에서 초기화되지 않음 → 시드를 미리 만든 후 구동
라이선싱LICENSE-GATED각 병렬 솔버 인스턴스는 자체 라이선스를 사용

에이전트는 절대 자동으로 수행해서는 안 됨: 이상화 / 요소 / 접촉 유형 / 경계 조건 단독 선택(HUMAN-JUDGMENT) · 교정 노브를 물리적 범위의 경계에 고정 · 특이 최대값 또는 수렴되지 않은 결과를 결과로 보고 · 실행 증거 없이 검증 / 메쉬 독립성 / 승인 주장 · 승인 없이 되돌릴 수 없는 푸시/덮어쓰기 수행.

짝 및 실행자 계약

이 스킬은 거버넌스 레이어이며 실행자가 아닙니다. 솔버를 구동하는 모든 것(PyMAPDL, PyMechanical, Abaqus / OpenFOAM 드라이버, OASiS, CAE MCP)과 짝을 이루십시오: 실행자는 실행하고; 이 스킬은 주장을 관리합니다. 출처가 없는 솔버 출력을 신뢰하지 마십시오 — 결과는 실행자가 다음을 반환할 때만 신뢰할 수 있습니다:

  • 실행 매니페스트 (run_manifest.json, 템플릿 scripts/run_manifest_template.json) — 추적 가능성의 핵심 (NAFEMS R0033).
  • 솔버 이름 + 정확한 버전 — 감지된 설치의 배너/-help에서 읽어오며, 절대 가정하지 않습니다.
  • 입력 덱 해시 + 결과 파일 해시 (예: .inp/.dat/.cdb의 SHA-256 및 .rst/.rth/.op2의 SHA-256) — 숫자를 생성한 정확한 덱과 결과에 연결합니다.
  • 명령 + 플래그 증거 — 실제 실행 라인, 해당 버전에 대해 검증된 플래그(버전 정렬 명령 규칙, 0단계).
  • 격리된 작업 공간 — 깨끗한 작업 디렉토리; 출력은 그곳에 기록되며, superseded_by 포인터 없이 이전 "최종"을 덮어쓰지 않습니다.

이러한 출처가 없는 결과는 기껏해야 SMOKE/DEBUG 아티팩트입니다 — 그렇게 표현하십시오 (references/claim-templates.md 참조).

실행 모드 (작업당 하나 선택 — 필수 게이트와 주장할 수 있는 내용을 설정)

모드사용 시기필수 게이트절대 안 됨
SMOKE환경/덱/해석/파싱 실행 증명0단계; 해석 완료; 결과 파일이 쓰여졌고 읽을 수 있음엔지니어링 숫자를 주장하거나 어떤 것도 조정
DEBUG실패 원인 찾기증상에 대한 하나의 결정적 테스트; 열 해석인 경우 연결성 게이트진단 해석을 결과로 제시
ENGINEERING사용 가능한 결과 + 건전성 검사단위; 연결성; 반력/열/질량 균형; 수렴; QoI 추출; 특이점 검사승인 주장; 특이 최대값 보고
SIGNOFF방어 가능한 인도물모든 ENGINEERING + 메쉬 및 시간 단계 독립성 (GCI, 점근 범위) + 추적 가능한 보고서 + 오차 한계게이트 건너뛰기; 불확실성 모호하게 표현

SMOKE/DEBUG 결과는 파이프라인/물리 검사이며, 절대 엔지니어링 결론이 아닙니다 — 그렇게 레이블을 붙이십시오.

★ 주장 전 자체 점검 — 엔지니어링 숫자를 진술하기 전에 모두 답변

이것이 스킬을 신뢰할 수 있게 만드는 게이트입니다. 응력, 온도, 주파수, 여유, 항력, 또는 "통과"를 입력하기 전에 다음 질문에 답변하십시오. 하나라도 아니오 / 알 수 없음이면, 결과가 있는 것이 아닙니다 — SMOKE/DEBUG 출력이 있을 뿐입니다: 그렇게 말하고 중단하십시오.

  1. 모드? 어떤 실행 모드에 있으며, 해당 모드의 필수 게이트를 통과했습니까? (SMOKE/DEBUG ⇒ 엔지니어링 결론이 아님.)
  2. 단위? 일관된 시스템이 검증되었습니까(1g-질량 / 수동 계산 확인); 밀도가 단위 오염되지 않았습니까?
  3. 이산화 오류 해결됨? 메쉬 및 시간 단계 오류가 제한되고 명시되었습니까 (SIGNOFF의 경우 GCI; ENGINEERING의 경우 단일 메쉬 ZZ/SPR 추정)? 단독 단일 메쉬 숫자는 결코 결과가 아닙니다.
  4. 특이점 제외됨? QoI가 모서리 / 집중 하중 / 균열 선단 아티팩트에 있습니까? 인용하기 전에 읽어내거나 선형화하십시오.
  5. 균형 확인됨? 반력 = 적용 하중; 열/질량/에너지 균형이 허용 오차 내에 있습니까? 수렴은 잔차 이력에서 확인했으며, 종료 코드가 아닙니까?
  6. 허용 기준 명명됨? 이름 없는 숫자가 아닌 명명된 기준 / 설계 코드에 대한 여유가 있습니까?
  7. 인간 판단 게이트 통과됨? 하중 조건, 접촉 유형, 허용 기준, 디피처 또는 승인을 조용히 선택했습니까? 예라면 — 중단하고 에스컬레이션 하십시오 (references/escalation-examples.md 참조).

그런 다음 references/claim-templates.md의 해당 템플릿을 사용하여 결과를 표현하십시오. 에이전트는 실행 증거 없이 승인을 주장하지 않으며, 엔지니어링 결정을 스스로 승인하지 않습니다. 정확한 솔버 플래그 / API 호출 자체가 주장입니다 — 0단계의 버전 정렬 명령 규칙에 따라 확인하십시오.

0단계 — 항상 먼저: 환경 발견

버전이나 경로를 가정하지 마십시오. 설치/라이선스된 것을 찾은 다음, 플랫폼 + 물리 + QoI를 확인하십시오.

Get-ChildItem "C:\Program Files\ANSYS Inc" -Recurse -Filter "ANSYS*.exe" -ErrorAction SilentlyContinue | Select FullName   # MAPDL/Mechanical/Fluent/CFX
Get-ChildItem "C:\Program Files\Siemens" -Recurse -Include "nastran.exe","run_journal.exe","tmgnx.cmd","ugraf.exe" -ErrorAction SilentlyContinue
Get-ChildItem "C:\Program Files" -Recurse -Filter "abq*.bat" -ErrorAction SilentlyContinue   # Abaqus; also `which icem`, OpenFOAM `foamVersion`
$env:ANSYSLMD_LICENSE_FILE; $env:LM_LICENSE_FILE
(Get-CimInstance Win32_Processor | Measure-Object NumberOfCores -Sum).Sum   # 물리적 코어

Linux: ansysNNN -b, nastran, abaqus, simpleFoam, fluent -g; $LM_LICENSE_FILE, nproc 확인.

버전 정렬 명령 (규칙): 감지된 릴리스에 존재한다고 확인되지 않은 솔버 명령, 플래그 또는 API 호출을 절대 내보내지 마십시오 — 버전은 플래그 이름을 바꾸고 API를 변경합니다. 특히 ENGINEERING/SIGNOFF의 경우, 사용하기 전에 설치된 버전의 -help/문서와 비교하여 확인하십시오.

표준 워크플로 (순서대로 실행)

  1. 목표 + QoI — 결정을 주도하는 스칼라(여유, 변위, 주파수, 최대 온도, 항력). "모델 실행"이 아님.
  2. 해석 유형 — 정적/모드/좌굴/열/CFD/연계; 선형 대 비선형(재료? 대변형? 접촉? 난류?).
  3. 이상화 (가장 중요) — 1D/2D/3D; 지오메트리 와 하중 과 경계 조건이 모두 대칭인 경우에만 대칭 사용; 관련 없는 형상 제거. → references/meshing-convergence.md.
  4. 재료 — 올바른 구성 모델; 온도 의존 특성; 극저온에서는 ∫α(T)dT 사용. → references/material-modeling.md.
  5. 메쉬 — 요소 차수/족, 농도에서의 정제, 품질 게이트. → references/meshing-convergence.md.
  6. 연결 및 접촉. → references/mechanical-connections.md, references/thermal-contact-resistance.md.
  7. 경계 조건 및 하중 — 모델의 차원/유형에 적합한 강체 모드만 제거합니다(구속되지 않은 3D 솔리드는 6개; 2D, 축대칭, 쉘 전용 및 주기 대칭 모델은 다름); 현실적인 영역에 하중을 적용합니다(절대 점 하중/구속 → 특이점); 자유물체의 경우 관성 완화 사용. → references/advanced-methods.md.
  8. 해석 제어 — 솔버 유형, 코어, 서브스텝 + 허용 오차. → references/solver-numerics.md.
  9. 검증 — 평형, 메쉬/시간 단계 독립성, 수렴 이력. → references/vv-uq.md.
  10. 확인 — 시험 / 수동 계산 / NAFEMS 벤치마크와 비교 (교정은 검증과 다름).
  11. 후처리 및 보고 — 올바른 측정, 평균화-대-비평균화 확인, 여유, 명시된 가정.

일관된 단위 (하나의 시스템 선택; 솔버는 단위 무관)

시스템길이힘응력/E질량밀도 (강철)g
SI (m)mNPakg7850 kg/m³9.81 m/s²
mm-t-s (일반 CAE)mmNMPatonne7.85e-9 t/mm³9810 mm/s²

밀도는 조용한 오염원입니다: 잘못된 단위의 밀도는 정적 해석에서는 통과하지만 모든 동적/명시적/과도 열 결과를 망칩니다. MAPDL /UNITS는 메타데이터일 뿐입니다. 1g 질량 확인 또는 수동 계산 고유 진동수로 검증하십시오.

요소 선택 및 메쉬 품질 (심화: references/meshing-convergence.md)

  • 2차 요소 (중간 노드)는 응력/곡선 지오메트리, 특히 사면체 요소에 사용 — 응력 해석에 선형 TET4는 피하십시오 (일정 변형률 → 과도하게 강성, 느린 응력 수렴; QoI에서 멀리 떨어진 채움재로만 허용 가능). 명시적/대변형 해석에는 선형 요소 사용. (전단 잠금은 굽힘에서 완전 적분 선형 사각형/육면체 요소에 영향을 미칩니다 — 기생 전단; 감소 적분, 비호환 모드 또는 2차 요소로 해결하며, 이는 TET4의 일정 변형률 강성과 동일한 결함이 아닙니다.) 최신 2차 솔리드 요소는 약한 굽힘에 대해 시작점으로 두께당 ~1개 요소로 해결합니다(곡률 기반 — 수렴으로 확인); 선형 요소는 여러 개가 필요하며, 정확도가 중요한 굽힘에는 ≥2개의 2차 요소가 필요합니다.
  • 두께/길이 ≲ 1/10–1/20이면 쉘 요소 사용; 3D 응력/두께 방향 해석에는 솔리드; 가늘고 긴 경우 보 요소 사용.

관련 스킬