Communitygithub.com

test1card/femis-skill

Eine Claude-Agent-Fertigkeit, die einen KI-Coding-Agenten in einen disziplinierten FEM/CAE-Analysten verwandelt: regelt Engineering-Behauptungen mit Ausführungsmodus-Schranken, GCI-Gitterunabhängigkeit und V&V über Ansys, Abaqus, Nastran, OpenFOAM, COMSOL. Governance-Schicht, kein Solver-Treiber.

Was ist femis-skill?

Diese Fertigkeit ist eine professionelle Governance-Schicht für KI-Agenten, die in der FEM/CAE-Analyse arbeiten. Sie ersetzt keinen Solver-Treiber (wie PyMAPDL oder ein Abaqus-MCP), sondern fungiert als disziplinierte Prüfinstanz, die entscheidet, ob ein Ergebnis als technisch vertrauenswürdig eingestuft werden darf oder nicht. Sie definiert vier verbindliche Ausführungsmodi (SMOKE, DEBUG, ENGINEERING, SIGNOFF) mit aufsteigenden Anforderungen an die Ergebnisqualität. Die Kernlogik erzwingt eine Reihe von Prüfungen, bevor ein Wert als Ergebnis ausgegeben werden darf: Einheitenkonsistenz, Diskretisierungsfehler (GCI), Eliminierung von Singularitäten, Gleichgewichtsprüfung und die Nennung einer zulässigen Grenze. Die Fertigkeit ist solver-agnostisch und deckt Strukturmechanik, Thermodynamik und Strömungsmechanik (CFD) über gängige kommerzielle und Open-Source-Lösungen hinweg ab. Sie enthält außerdem ein detailliertes Headless-vs-Human-Vertragsmodell, das festlegt, welche Aufgaben ein Agent automatisieren darf und bei welchen ein menschlicher Ingenieur eingreifen muss. Ziel ist es, dem Auditor vertrauenswürdige, rückverfolgbare Analysen zu liefern, die den Grundsätzen der Verifizierung und Validierung (V&V) entsprechen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add test1card/femis-skill

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

FEM / CAE — Struktur · Thermik · CFD · Multiphysik

Diese Fertigkeit regelt Engineering-Behauptungen – sie treibt keine Solver an und gibt keine Auslegungen frei. Sie arbeitet mit einem Solver-Treiber / MCP (PyMAPDL, PyMechanical, einem Abaqus / OpenFOAM-Treiber, OASiS, einem CAE-MCP) zusammen, der ausführt; diese Fertigkeit entscheidet, ob ein Ergebnis behauptet werden darf, auf welchem Niveau und wann ein Mensch entscheiden muss.

Übersicht

Regelt Finite-Elemente- und CAE-Analysen Ende-zu-Ende. Gekoppelt mit einem Ausführer (PyMAPDL, PyMechanical, PyFluent, einem Abaqus/OpenFOAM-Treiber, einem CAE-MCP – siehe „Governance-Schicht, nicht der Ausführer" weiter unten) findet der Ausführer den installierten Solver, erstellt das Deck/Skript und startet headless/batch; diese Fertigkeit leitet und prüft die Idealisierung, liest das Protokoll auf Konvergenz, untersucht/parst Ergebnisse und erzwingt professionelle Praxis (Idealisierung → Vernetzung → Verbindungen → Löse-Steuerung → Konvergenz → Netzunabhängigkeit → V&V) bei jedem Lauf. Die Methodik ist solver-agnostisch; die hier ausgearbeitete Tiefe ist Ansys / Simcenter / Thermal Desktop, mit Breite über Abaqus, LS-DYNA, MSC/Simcenter Nastran, COMSOL, OpenFOAM, Fluent, CFX, STAR-CCM+, CalculiX, Code_Aster (siehe references/software-landscape.md).

Kernprinzipien (als Schranken erzwingen):

  1. Kein Ergebnis wird vertraut, bis sein Diskretisierungsfehler (Netz/Zeitschritt) behandelt ist – im ENGINEERING-Modus begrenzt und angegeben (z. B. QoI-Änderung bei letzter Verfeinerung oder eine Einzelnetz-ZZ/SPR-Schätzung), im SIGNOFF-Modus vollständig durch eine GCI-Studie im asymptotischen Bereich demonstriert; eine Einzelnetz-Zahl, die ohne Fehlerangabe gemeldet wird, ist nie ein Ergebnis. Plus die Konvergenzprüfungen unten.
  2. Konvergiere die interessierende Größe (QoI), nicht die Spitze – Spitzen an scharfen Ecken/Punktlasten/Rissspitzen sind Singularitäten, die nie konvergieren.
  3. Die meiste Fehler entsteht in der Vorverarbeitung (Idealisierung, Randbedingungen, Verbindungen) – lasse diese Entscheidungen vorne.
  4. Verifikation vor Validierung; Kalibrierung ≠ Validierung – und ein Agent darf keine Freigabe ohne Laufnachweise behaupten.

Diese SKILL.md ist der Router. Die Tiefe steckt in references/ – lade eine Referenz nur, wenn ihr Thema im Spiel ist.

Wann verwenden

  • Struktur (statisch/modal/Beulen/nichtlinear/explizit), Thermik (stationär/transient/Strahlung), CFD (RANS/LES, CHT), Elektromagnetik (Nieder-/Hochfrequenz), Vibroakustik/NVH, Mehrkörper und gekoppelte Multiphysik (thermo-mechanisch, FSI, EM-Thermik).
  • Versagen & Haltbarkeit: Bruch / Schadenstoleranz, Ermüdung (inkl. Vibrations-/Spektral), Verbundwerkstoffe, Plastizität / Einspielen / Ratcheting, Beulen & Stabilität, Crash / Impact / Tropfen.
  • Kontakt, thermischer Kontaktwiderstand, geschraubte/geschweißte/starre Verbindungen; Vernetzung & Netzunabhängigkeit (GCI); Element-/Solver-/Einheitenauswahl.
  • Headless/Batch-Lösen und Ergebnisparsen; Optimierung, Kalibrierung, inverse Parameteridentifikation / Modellaktualisierung.
  • V&V / UQ; Substrukturierung / ROM; kryogene / Vakuum / Raumfahrzeug-Thermik.
  • Entscheiden, was ein Agent headless automatisieren kann vs. was ein Mensch tun muss (nächster Abschnitt).

Nicht für: reine CAD-Modellierung oder Probleme, die besser mit einer geschlossenen Handrechnung gelöst werden.

★ Agent-Fähigkeit & Headless-vs-Mensch-Vertrag

Genau, wer was tut. Kategorien: AGENT-HEADLESS (vollständig skriptbar/batch, keine GUI) · AGENT-VIA-API (Python/Journal-API, benötigt eine Sitzung + Lizenz) · HUMAN-GUI (muss mindestens einmal interaktiv sein) · HUMAN-JUDGMENT (ingenieurtechnische Entscheidung, die der Agent nicht allein treffen darf) · LICENSE-GATED. Vollständige plattformabhängige Details: references/agent-automation-boundary.md.

OperationKlassifizierungWie / Warum
CAD-ImportAGENT-VIA-APIPyMAPDL/PyMechanical/run_journal importieren STEP/Parasolid
Geometriebereinigung / starke DefeaturierungAGENT-VIA-API + HUMAN-JUDGMENTskriptbare Defeaturierung/Pinch; unordentliche Reparatur + was zu defeaturen ist ist Urteilsentscheidung
VernetzungAGENT-HEADLESS (Ansys) · SEED-IN-GUI (NX)PyMAPDL/PyMechanical vernetzen vollständig headless; NX .fem/.sim-Vorlagen lösen sich im Batch nicht auf → einmal in der GUI seeden
Material erstellen/zuweisenAGENT-HEADLESSauf allen Plattformen skriptbar; temperaturabhängige Daten bereitstellen
Kontakte / VerbindungenAGENT-HEADLESS (erstellen) + HUMAN-JUDGMENT (Art)Definieren ist skriptbar; gebondet vs. reibungsbehaftet / RBE2 vs. RBE3 ist eine ingenieurtechnische Entscheidung
Randbedingungen & LastenAGENT-HEADLESSskriptbar; der Agent darf den Lastfall nicht erfinden
Parameter für Optimierung freilegenAGENT-HEADLESS (PyMAPDL *SET) · HUMAN-GUI (Workbench P#, NX Expressions, HEEDS-Tags)nur PyMAPDL ist GUI-frei für Parametrisierung
Lösen (stationär/transient/nichtlinear)AGENT-HEADLESS + LICENSE-GATEDansys -b, nastran.exe, tmgnx, abaqus job=, fluent -g, OpenFOAM, cfx5solve -batch, starccm+ -batch
Elektromagnetisches Lösen (Maschinen/HF/Wirbelstrom)AGENT-VIA-API + LICENSE-GATEDPyAEDT (import ansys.aedt.core, non_graphical=True), COMSOL/getDP batch; Ports/Anregungen/Sweeps sind Engineering-Setup
Optimierung / DOE / KalibrierungAGENT-HEADLESS (PyMAPDL+SciPy, optiSLang -b, HEEDS CLI) + GUI-AUTHOR-ONCEStudie/Tags einmal in der GUI authorisieren, dann headless ausführen
Ergebnis-ExtraktionAGENT-HEADLESSPyDPF, pyNastran (.op2/.f06), .odb, SINDA .out, CGNS/VTK
Bilder/Plots erstellenAGENT-HEADLESSpyvista off-screen, ParaView pvbatch
Korrelation / Modell-Aktualisierung (MAC, Knotenpaarung)HUMAN-GUIinteraktive Test↔Analyse-Knotenpaarung ist GUI-Arbeit
Template / .sim / Projekt-Authoring (NX)HUMAN-GUITemplate-Registry nicht headless initialisiert → vorher einen Seed erstellen, dann steuern
LizenzierungLICENSE-GATEDjede parallele Solver-Instanz verbraucht ihren eigenen Sitzplatz

Ein Agent darf NIEMALS automatisch: Idealisierung / Element / Kontaktart / alleinige BC wählen (HUMAN-JUDGMENT) · einen Kalibrierungsknopf am Rand seines physikalischen Korridors festnageln · einen singulären Peak oder ein unkonvergiertes Ergebnis als Ergebnis melden · Verifikation / Netzunabhängigkeit / Freigabe ohne die Laufnachweise behaupten · einen irreversiblen Push/Überschreiben ohne Autorisierung durchführen.

Paarung & Ausführer-Vertrag

Diese Fertigkeit ist die Governance-Schicht, nicht der Ausführer. Kombiniere sie mit dem, was den Solver antreibt (PyMAPDL, PyMechanical, einem Abaqus / OpenFOAM-Treiber, OASiS, einem CAE-MCP): der Ausführer läuft; diese Fertigkeit regelt die Behauptung. Vertraue keiner Solver-Ausgabe ohne Herkunftsnachweis – ein Ergebnis ist nur dann glaubwürdig, wenn der Ausführer Folgendes zurückgibt:

  • Lauf-Manifest (run_manifest.json, Vorlage scripts/run_manifest_template.json) – das Rückverfolgbarkeitsrückgrat (NAFEMS R0033).
  • Solvername + exakte Version – aus dem erkannten Installations-Banner/-help gelesen, niemals angenommen.
  • Eingabe-Deck-Hash + Ergebnisdatei-Hash (z. B. SHA-256 der .inp/.dat/.cdb und der .rst/.rth/.op2) – bindet eine Zahl an das genaue Deck und Ergebnis, das sie erzeugt hat.
  • Befehl + Flag-Nachweis – die tatsächliche Startzeile, Flags gegen diese Version verifiziert (versionsabgeglichene-Befehle-Regel, Schritt 0).
  • Isolierter Arbeitsbereich – ein sauberes Arbeitsverzeichnis; Ausgaben dort geschrieben, niemals eine vorherige „finale" Ausgabe ohne einen superseded_by-Zeiger überschreibend.

Einem Ergebnis ohne diesen Herkunftsnachweis ist bestenfalls ein SMOKE/DEBUG-Artefakt – formuliere es als solches (references/claim-templates.md).

Ausführungsmodi (wähle einen pro Aufgabe – legt die verbindlichen Schranken fest und was du behaupten darfst)

ModusVerwende, wennVerbindliche SchrankenNiemals
SMOKEbeweisen, dass Umgebung/Deck/Lösen/Parsen läuftSchritt 0; Lösen abgeschlossen; Ergebnisdatei geschrieben und lesbareine ingenieurtechnische Zahl behaupten; etwas optimieren
DEBUGdie Ursache eines Fehlers findenden einen entscheidenden Test für das Symptom; Konnektivitätsschranke, wenn thermischeinen diagnostischen Lauf als Ergebnis präsentieren
ENGINEERINGverwendbares Ergebnis + PlausibilitätsprüfungenEinheiten; Konnektivität; Reaktions-/Wärme-/Massenbilanz; Konvergenz; QoI-Extraktion; SingularitätsprüfungFreigabe behaupten; einen singulären Peak melden
SIGNOFFverteidigbares Arbeitsergebnisalle ENGINEERING + Netz- & Zeitschrittunabhängigkeit (GCI, asymptotischer Bereich) + rückverfolgbarer Bericht + Fehlergrenzeneine Schranke überspringen; Unsicherheit beschönigen

Ein SMOKE/DEBUG-Ergebnis ist eine Pipeline-/Physikprüfung, niemals eine ingenieurtechnische Schlussfolgerung – kennzeichne es.

★ Pre-Claim-Selbstprüfung – beantworte ALLE, bevor du eine technische Zahl nennst

Dies ist die Schranke, die die Fertigkeit vertrauenswürdig macht. Bevor du eine Spannung, Temperatur, Frequenz, Sicherheitsmarge, einen Widerstand oder ein „es besteht" eingibst, beantworte diese. Wenn eine Antwort nein / unbekannt ist, hast du kein Ergebnis – du hast eine SMOKE/DEBUG-Ausgabe: sage das und höre auf.

  1. Modus? In welchem Ausführungsmodus bin ich, und habe ich seine verbindlichen Schranken bestanden? (SMOKE/DEBUG ⇒ keine ingenieurtechnische Schlussfolgerung.)
  2. Einheiten? Konsistentes System verifiziert (1g-Masse / Handrechnungsprüfung); ist die Dichte nicht einheitsverfälscht?
  3. Diskretisierungsfehler behandelt? Netz- und Zeitschrittfehler begrenzt und angegeben (GCI für SIGNOFF; Einzelnetz-ZZ/SPR-Schätzung für ENGINEERING)? Eine einzelne Einzelnetz-Zahl ist nie ein Ergebnis.
  4. Singularität ausgeschlossen? Ist die QoI an einer Ecke / Punktlast / Rissspitze ein Artefakt? Weglesen oder linearisieren, bevor zitiert wird.
  5. Gleichgewicht geprüft? Reaktion = aufgebracht; Wärme-/Massen-/Energiebilanz innerhalb Toleranz; Konvergenz aus dem Residuenverlauf, nicht aus dem Exit-Code?
  6. Zulässige Grenze genannt? Gibt es eine Sicherheitsmarge gegenüber einem NAMENTLICHEN Kriterium / Auslegungscode – nicht eine bloße Zahl?
  7. Human-Judgment-Schranke überschritten? Habe ich stillschweigend einen Lastfall, Kontakttyp, zulässige Grenze, Defeaturierung oder Freigabe gewählt? Wenn ja – STOPP und eskalieren (references/escalation-examples.md).

Formuliere dann das Ergebnis mit der passenden Vorlage in references/claim-templates.md. Der Agent behauptet niemals eine Freigabe ohne Laufnachweise und autorisiert niemals selbst eine ingenieurtechnische Entscheidung. Exakte Solver-Flags / API-Aufrufe sind selbst eine Behauptung – bestätige sie gemäß der versionsabgeglichenen-Befehle-Regel in Schritt 0.

Schritt 0 – IMMER ZUERST: Umgebungserkennung

Nimm niemals eine Version oder einen Pfad an. Finde, was installiert/lizenziert ist, bestätige dann Plattform + Physik + 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; auch `which icem`, OpenFOAM `foamVersion`
$env:ANSYSLMD_LICENSE_FILE; $env:LM_LICENSE_FILE
(Get-CimInstance Win32_Processor | Measure-Object NumberOfCores -Sum).Sum   # PHYSISCHE Kerne

Linux: ansysNNN -b, nastran, abaqus, simpleFoam, fluent -g; prüfe $LM_LICENSE_FILE, nproc.

Versionsabgeglichene Befehle (Regel): gib niemals einen Solver-Befehl, ein Flag oder einen API-Aufruf aus, von dem du nicht verifiziert hast, dass er in der erkannten Version existiert – Versionen benennen Flags um und treiben APIs auseinander. Bestätige gegen die -help/Dokumentation der installierten Version, bevor du dich darauf verlässt, besonders für ENGINEERING/SIGNOFF.

Kanonischer Arbeitsablauf (in Reihenfolge ausführen)

  1. Ziel + QoI – die skalare Größe, die die Entscheidung treibt (Sicherheitsmarge, Durchbiegung, Frequenz, Spitzentemperatur, Widerstand). Nicht „das Modell ausführen."
  2. Analysetyp – statisch/modal/Beulen/thermisch/CFD/gekoppelt; linear vs. nichtlinear (Material? Großverformung? Kontakt? Turbulenz?).
  3. Idealisieren (am folgenreichsten) – 1D/2D/3D; Symmetrie nur, wenn Geometrie und Lasten und Randbedingungen symmetrisch sind; irrelevante Merkmale defeaturen. → references/meshing-convergence.md.
  4. Materialien – korrektes konstitutives Modell; temperaturabhängige Eigenschaften; bei Kryo verwende ∫α(T)dT. → references/material-modeling.md.
  5. Netz – Elementordnung/-familie, Verfeinerung an Konzentrationen, Qualitätsschranke. → references/meshing-convergence.md.
  6. Verbindungen & Kontakt. → references/mechanical-connections.md, references/thermal-contact-resistance.md.
  7. Randbedingungen & Lasten – entferne nur die Starrkörpermoden, die für die Dimensionalität/Art des Modells geeignet sind (ein ungestützter 3D-Festkörper hat 6; 2D-, axialsymmetrische, reine Schalen- und zyklisch-symmetrische Modelle unterscheiden sich); Lasten über realistische Flächen (niemals Punktlasten/-Zwänge → Singularitäten); Trägheitsentlastung für freie Körper. → references/advanced-methods.md.
  8. Löse-Steuerung – Solver-Typ, Kerne, Unter-/Zwischenschritte + Toleranzen. → references/solver-numerics.md.
  9. Verifizieren – Gleichgewicht, Netz-/Zeitschrittunabhängigkeit, Konvergenzverlauf. → references/vv-uq.md.
  10. Validieren – gegen Test / Handrechnung / NAFEMS-Benchmark (Kalibrierung ≠ Validierung).
  11. Nachbereitung & Bericht – richtiges Maß, gemittelt-vs-ungemittelt-Prüfung, Sicherheitsmargen, angegebene Annahmen.

Konsistente Einheiten (wähle EIN System; Solver sind einheitenfrei)

SystemLängeKraftSpannung/EMasseDichte (Stahl)g
SI (m)mNPakg7850 kg/m³9,81 m/s²
mm-t-s (üblich CAE)mmNMPaTonne7,85e-9 t/mm³9810 mm/s²

Die Dichte ist der stille Verfälscher: eine Dichte in der falschen Einheit besteht die Statik, ruiniert aber jedes dynamische/explizite/transient-thermische Ergebnis. MAPDL /UNITS sind nur Metadaten. Verifiziere mit einer 1g-Masse-Prüfung oder einer Handrechnung einer Eigenfrequenz.

Elementauswahl & Netzqualität (Tiefe: references/meshing-convergence.md)

  • Quadratisch (Mittelknoten) für Spannung/gekrümmte Geometrie, insb. Tetraeder – vermeide lineare TET4 für Spannungen (konstante Dehnung → übersteif, langsame Spannungskonvergenz; nur als Füllmaterial weit weg von der QoI akzeptabel). Linear für explizit/große Verformung. (Schubversteifung im eigentlichen Sinne befällt vollintegrierte lineare Quader/Hexaeder bei Biegung – parasitärer Schub; beheben mit reduzierter Integration, inkonsistenten Modi oder quadratischen Elementen – nicht derselbe Defekt wie die konstante Dehnungssteifigkeit von TET4.) Moderne quadratische Festkörper lösen milde Biegung mit ~1 Element über die Dicke als Ausgangspunkt (krümmungsgetrieben – durch Konvergenz bestätigen); lineare Elemente benötigen mehrere, und bei genauigkeitskritischer Biegung sind ≥2 quadratisch.
  • Schale wenn Dicke/Länge ≲ 1/10–1/20; Festkörper für 3D-Spannung/durch die Dicke; Balken für schlank. Berücksichtige Scherung...

Verwandte Skills