Communitygithub.com

test1card/femis-skill

Un skill para Agentes de Claude que convierte a un agente de codificación de IA en un analista disciplinado de FEM/CAE: regula afirmaciones ingenieriles con compuertas de modo de ejecución, independencia de malla GCI y V&V en Ansys, Abaqus, Nastran, OpenFOAM, COMSOL. Capa de gobernanza, no un controlador de solvers.

¿Qué es femis-skill?

Este skill, test1card/femis-skill, es una capa de gobernanza para agentes de IA en ingeniería asistida por computadora (FEM/CAE). No ejecuta solvers, sino que guía y audita el proceso de análisis, asegurando que cada resultado se obtenga siguiendo prácticas profesionales rigurosas. Funciona con plataformas como Ansys, Abaqus, Nastran, OpenFOAM y COMSOL, y es agnóstico al solver, enfocándose en la idealización, mallado, conexiones, controles de solución, convergencia, independencia de malla y verificación/validación (V&V). El skill impone compuertas obligatorias según el modo de ejecución: SMOKE (prueba de entorno), DEBUG (diagnóstico), ENGINEERING (resultado usable con verificaciones) y SIGNOFF (entregable defendible con GCI). Además, establece un contrato claro entre lo que el agente puede automatizar (sin cabeza) y lo que requiere juicio humano, evitando que el agente afirme resultados sin evidencia de ejecución o tome decisiones ingenieriles críticas de forma autónoma. Es ideal para análisis estructurales, térmicos, CFD, electromagnéticos y multifísicos, pero no para modelado CAD puro o cálculos manuales simples.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add test1card/femis-skill

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

FEM / CAE — estructural · térmico · CFD · multifísico

Este skill gobierna afirmaciones ingenieriles — no controla solvers ni firma diseños. Se empareja con un controlador de solver / MCP (PyMAPDL, PyMechanical, un controlador de Abaqus / OpenFOAM, OASiS, un MCP de CAE) que ejecuta; este skill decide si un resultado puede ser afirmado, a qué altitud, y cuándo un humano debe decidir.

Resumen

Gobierna el análisis de elementos finitos y CAE de principio a fin. Emparejado con un ejecutor (PyMAPDL, PyMechanical, PyFluent, un controlador de Abaqus/OpenFOAM, un MCP de CAE — ver "capa de gobernanza, no el ejecutor" más abajo) el ejecutor localiza el solver instalado, construye el script/archivo de entrada, y lanza sin cabeza/por lotes; este skill guía y audita la idealización, lee el registro para convergencia, inspecciona/analiza resultados, y aplica prácticas profesionales (idealización → mallado → conexiones → controles de solución → convergencia → independencia de malla → V&V) en cada ejecución. La metodología es agnóstica al solver; la profundidad trabajada aquí es Ansys / Simcenter / Thermal Desktop, con amplitud en Abaqus, LS-DYNA, MSC/Simcenter Nastran, COMSOL, OpenFOAM, Fluent, CFX, STAR-CCM+, CalculiX, Code_Aster (ver references/software-landscape.md).

Principios fundamentales (aplicados como compuertas):

  1. Ningún resultado es confiable hasta que su error de discretización (malla/paso de tiempo) sea abordado — acotado y declarado en INGENIERÍA (p. ej., cambio en la QoI del último refinamiento, o una estimación ZZ/SPR de malla única), completamente demostrado con un estudio GCI en el rango asintótico para APROBACIÓN; un número de malla única reportado sin ninguna declaración de error nunca es un resultado. Además de las comprobaciones de convergencia a continuación.
  2. Converger la Cantidad de Interés (QoI), no el pico — los picos en esquinas afiladas/cargas puntuales/puntas de grieta son singularidades que nunca convergen.
  3. La mayoría del error nace en el preprocesamiento (idealización, condiciones de contorno, conexiones) — carga esas decisiones al frente.
  4. Verificación antes que validación; calificación ≠ validación — y un agente no debe afirmar aprobación sin evidencia de ejecución.

Este SKILL.md es el enrutador. La profundidad vive en references/ — carga una referencia solo cuando su tema está en juego.

Cuándo usar

  • Estructural (estático/modal/pandeo/no lineal/explícito), térmico (estacionario/transitorio/radiación), CFD (RANS/LES, CHT), electromagnético (baja/alta frecuencia), vibro-acústica/NVH, multicuerpo, y multifísico acoplado (termo-mecánico, FSI, EM-térmico).
  • Falla y durabilidad: fractura/tolerancia al daño, fatiga (incl. vibracional/espectral), compuestos, plasticidad/acomodación/ratcheting, pandeo y estabilidad, impacto/choque/caída.
  • Contacto, resistencia de contacto térmico, conexiones atornilladas/soldadas/rígidas; mallado e independencia de malla (GCI); selección de elemento/solver/unidad.
  • Resolución sin cabeza/por lotes y análisis de resultados; optimización, calibración, identificación de parámetros inversa / actualización de modelo.
  • V&V / UQ; subestructuración/ROM; térmico criogénico/vacío/nave espacial.
  • Decidir lo que el agente puede automatizar sin cabeza vs lo que un humano debe hacer (siguiente sección).

No para: modelado CAD puro o problemas mejor resueltos con un cálculo manual de forma cerrada.

★ Capacidad del agente y contrato sin cabeza-vs-humano

Exactamente quién hace qué. Cubos: AGENTE-SIN-CABEZA (totalmente scripteable/por lotes, sin GUI) · AGENTE-VÍA-API (API Python/journal, necesita una sesión + licencia) · HUMANO-GUI (debe ser interactivo al menos una vez) · JUICIO-HUMANO (decisión de ingeniería que el agente no debe tomar solo) · LICENCIA-RESTRINGIDA. Detalle completo por plataforma: references/agent-automation-boundary.md.

OperaciónClasificaciónCómo / por qué
Importación CADAGENTE-VÍA-APIPyMAPDL/PyMechanical/run_journal importan STEP/Parasolid
Limpieza geométrica / desafeitado pesadoAGENTE-VÍA-API + JUICIO-HUMANOdesafeitado/pellizco scripteable; reparación desordenada + qué desafeitar es juicio
MalladoAGENTE-SIN-CABEZA (Ansys) · SEMILLA-EN-GUI (NX)PyMAPDL/PyMechanical mallan completamente sin cabeza; las plantillas .fem/.sim de NX no se resuelven en lote → sembrar una vez en GUI
Crear/asignar materialAGENTE-SIN-CABEZAscripteable en todas las plataformas; proporcionar datos dependientes de T
Contactos / conexionesAGENTE-SIN-CABEZA (construir) + JUICIO-HUMANO (tipo)definir es scripteable; pegado vs friccional / RBE2 vs RBE3 es una elección de ingeniería
Condiciones de contorno y cargasAGENTE-SIN-CABEZAscripteable; el agente no debe inventar el caso de carga
Exponer parámetros para optimizaciónAGENTE-SIN-CABEZA (PyMAPDL *SET) · HUMANO-GUI (Workbench P#, Expresiones NX, etiquetas HEEDS)solo PyMAPDL es libre de GUI para parametrización
Resolver (estacionario/transitorio/no lineal)AGENTE-SIN-CABEZA + LICENCIA-RESTRINGIDAansys -b, nastran.exe, tmgnx, abaqus job=, fluent -g, OpenFOAM, cfx5solve -batch, starccm+ -batch
Resolución electromagnética (máquinas/RF/eddy)AGENTE-VÍA-API + LICENCIA-RESTRINGIDAPyAEDT (import ansys.aedt.core, non_graphical=True), COMSOL/getDP batch; puertos/excitaciones/barridos son configuración de ingeniería
Optimización / DOE / calibraciónAGENTE-SIN-CABEZA (PyMAPDL+SciPy, optiSLang -b, CLI HEEDS) + GUI-AUTOR-UNA-VEZredactar el estudio/etiquetas en GUI una vez, luego ejecutar sin cabeza
Extracción de resultadosAGENTE-SIN-CABEZAPyDPF, pyNastran (.op2/.f06), .odb, .out de SINDA, CGNS/VTK
Imágenes/gráficos postAGENTE-SIN-CABEZApyvista fuera de pantalla, ParaView pvbatch
Correlación / actualización de modelo (MAC, emparejamiento de nodos)HUMANO-GUIel emparejamiento interactivo de nodos prueba↔análisis es trabajo de GUI
Autoría de plantilla / .sim / proyecto (NX)HUMANO-GUIel registro de plantillas no se inicializa sin cabeza → crear previamente una semilla, luego conducirla
LicenciamientoLICENCIA-RESTRINGIDAcada instancia de solver paralela consume su propio asiento

Un agente NUNCA debe auto-hacer: elegir idealización / elemento / tipo de contacto / BC solo (JUICIO-HUMANO) · aceptar una perilla de calibración fijada en su borde de corredor físico · reportar un pico singular o un resultado no convergido como un resultado · afirmar verificación / independencia de malla / aprobación sin la evidencia de ejecución · realizar un push/sobrescritura irreversible sin autorización.

Emparejamiento y contrato del ejecutor

Este skill es la capa de gobernanza, no el ejecutor. Emparejarlo con lo que sea que conduzca el solver (PyMAPDL, PyMechanical, un controlador de Abaqus / OpenFOAM, OASiS, un MCP de CAE): el ejecutor corre; este skill gobierna la afirmación. No confíes en ninguna salida de solver sin procedencia — un resultado es creíble solo cuando el ejecutor devuelve:

  • Manifiesto de ejecución (run_manifest.json, plantilla scripts/run_manifest_template.json) — la columna vertebral de trazabilidad (NAFEMS R0033).
  • Nombre del solver + versión exacta — leído del banner/-help de la instalación detectada, nunca asumido.
  • Hash del archivo de entrada + hash del archivo de resultado (p. ej., SHA-256 del .inp/.dat/.cdb y del .rst/.rth/.op2) — vincula un número al archivo de entrada exacto y al resultado que lo produjo.
  • Evidencia de comando + bandera — la línea de lanzamiento real, banderas verificadas contra esa versión (regla de comandos alineados con la versión, Paso 0).
  • Espacio de trabajo aislado — un directorio de trabajo limpio; las salidas escritas allí, nunca sobrescribiendo un "final" anterior sin un puntero superseded_by.

Un resultado que carece de esta procedencia es un artefacto SMOKE/DEBUG en el mejor de los casos — redáctalo como tal (references/claim-templates.md).

Modos de ejecución (elige uno por tarea — establece las compuertas obligatorias y lo que puedes afirmar)

ModoCuándo usarloCompuertas obligatoriasNunca
SMOKEprobar que env/deck/solve/parse funcionaPaso 0; solve se completa; archivo de resultado escrito y legibleafirmar cualquier número de ingeniería; ajustar cualquier cosa
DEBUGencontrar la causa de una fallala única prueba decisiva para el síntoma; compuerta de conectividad si térmicopresentar un solve de diagnóstico como un resultado
INGENIERÍAresultado usable + comprobaciones de corduraunidades; conectividad; balance de reacciones/calor/masa; convergencia; extracción de QoI; comprobación de singularidadafirmar aprobación; reportar un pico singular
APROBACIÓNentregable defendibletoda INGENIERÍA + independencia de malla y paso de tiempo (GCI, rango asintótico) + informe trazable + cotas de errorsaltar cualquier compuerta; menospreciar la incertidumbre

Un resultado SMOKE/DEBUG es una comprobación de tubería/física, nunca una conclusión de ingeniería — etiquétalo.

★ Auto-comprobación previa a la afirmación — responde TODO antes de declarar cualquier número de ingeniería

Esta es la compuerta que hace que el skill sea confiable. Antes de que escribas una tensión, temperatura, frecuencia, margen, arrastre, o "pasa", responde estas preguntas. Si alguna respuesta es no / desconocido, no tienes un resultado — tienes una salida SMOKE/DEBUG: dilo y detente.

  1. ¿Modo? ¿En qué modo de ejecución estoy, y han pasado sus compuertas obligatorias? (SMOKE/DEBUG ⇒ no es una conclusión de ingeniería.)
  2. ¿Unidades? ¿Sistema consistente verificado (1g-masa / comprobación de cálculo manual)? ¿No está la densidad corrupta por unidades?
  3. ¿Error de discretización abordado? ¿Error de malla y paso de tiempo acotado y declarado (GCI para APROBACIÓN; estimación ZZ/SPR de malla única para INGENIERÍA)? Un número solitario de malla única nunca es un resultado.
  4. ¿Singularidad excluida? ¿Está la QoI en una esquina / carga puntual / artefacto de punta de grieta? Leer lejos o linealizar antes de citar.
  5. ¿Balance comprobado? ¿Reacción = aplicada; balance de calor/masa/energía dentro de tolerancia; convergencia del historial residual, no del código de salida?
  6. ¿Permisible nombrado? ¿Hay un margen vs un criterio / código de diseño NOMBRADO — no un número desnudo?
  7. ¿Compuerta de juicio humano cruzada? ¿Elegí silenciosamente un caso de carga, tipo de contacto, permisible, desafeitado o aprobación? Si sí — DETENTE y escala (references/escalation-examples.md).

Luego redacta el resultado con la plantilla correspondiente en references/claim-templates.md. El agente nunca afirma aprobación sin evidencia de ejecución, y nunca se auto-autoriza una decisión de ingeniería. Las banderas exactas del solver / llamadas API son en sí mismas una afirmación — confírmalas según la regla de comandos alineados con la versión en el Paso 0.

Paso 0 — SIEMPRE primero: descubrimiento del entorno

Nunca asumas una versión o ruta. Encuentra lo que está instalado/con licencia, luego confirma plataforma + física + 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; también `which icem`, OpenFOAM `foamVersion`
$env:ANSYSLMD_LICENSE_FILE; $env:LM_LICENSE_FILE
(Get-CimInstance Win32_Processor | Measure-Object NumberOfCores -Sum).Sum   # Núcleos FÍSICOS

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

Comandos alineados con la versión (regla): nunca emitas un comando de solver, bandera o llamada API que no hayas verificado que existe en la versión detectada — las versiones renombran banderas y derivan APIs. Confirma contra la -help/docs de la versión instalada antes de confiar en ella, especialmente para INGENIERÍA/APROBACIÓN.

Flujo de trabajo canónico (ejecutar en orden)

  1. Objetivo + QoI — el escalar que impulsa la decisión (margen, deflexión, frecuencia, pico de T, arrastre). No "ejecutar el modelo."
  2. Tipo de análisis — estático/modal/pandeo/térmico/CFD/acoplado; lineal vs no lineal (¿material? ¿gran deflexión? ¿contacto? ¿turbulencia?).
  3. Idealizar (la más consecuente) — 1D/2D/3D; simetría solo si la geometría y las cargas y las BC son simétricas; desafeitar características irrelevantes. → references/meshing-convergence.md.
  4. Materiales — modelo constitutivo correcto; propiedades dependientes de la temperatura; en criogénico usar ∫α(T)dT. → references/material-modeling.md.
  5. Malla — orden/familia del elemento, refinamiento en concentraciones, compuerta de calidad. → references/meshing-convergence.md.
  6. Conexiones y contacto. → references/mechanical-connections.md, references/thermal-contact-resistance.md.
  7. Condiciones de contorno y cargas — eliminar solo los modos de cuerpo rígido apropiados para la dimensionalidad/tipo del modelo (un sólido 3D no restringido tiene 6; los modelos 2D, axisimétricos, solo de lámina y de simetría cíclica difieren); cargas sobre áreas realistas (nunca cargas/restricciones puntuales → singularidades); alivio de inercia para cuerpos libres. → references/advanced-methods.md.
  8. Controles de solución — tipo de solver, núcleos, subpasos + tolerancias. → references/solver-numerics.md.
  9. Verificar — equilibrio, independencia de malla/paso de tiempo, historial de convergencia. → references/vv-uq.md.
  10. Validar — vs prueba / cálculo manual / benchmark NAFEMS (calibración ≠ validación).
  11. Post e informe — medida correcta, comprobación de promediado vs no promediado, márgenes, supuestos declarados.

Unidades consistentes (elige UN sistema; los solvers son sin unidades)

SistemaLongitudFuerzaTensión/EMasaDensidad (acero)g
SI (m)mNPakg7850 kg/m³9.81 m/s²
mm-t-s (CAE común)mmNMPatonelada7.85e-9 t/mm³9810 mm/s²

La densidad es el corruptor silencioso: la densidad con unidades incorrectas pasa la estática pero arruina cada resultado dinámico/explícito/transitorio-térmico. /UNITS de MAPDL es solo metadatos. Verifica con una comprobación de masa de 1g o una frecuencia natural de cálculo manual.

Selección de elemento y calidad de malla (profundidad: references/meshing-convergence.md)

  • Cuadráticos (nodos medios) para tensión/geometría curva, esp. tets — evitar TET4 lineal para tensión (deformación constante → demasiado rígido, convergencia de tensión lenta; aceptable solo como relleno lejos de la QoI). Lineal para explícito/gran deformación. (Bloqueo por corte afecta a cuads/hexs lineales completamente integrados en flexión — corte parásito; arreglar con integración reducida, modos incompatibles o cuadráticos — no el mismo defecto que la rigidez de deformación constante de TET4.) Los sólidos cuadráticos modernos resuelven flexión suave con ~1 elemento a través del espesor como punto de partida (impulsado por curvatura — confirmar por convergencia); los elementos lineales necesitan varios, y la flexión crítica para precisión quiere ≥2 cuadráticos.
  • Lámina si espesor/longitud ≲ 1/10–1/20; sólido para tensión 3D/a través del espesor; viga para esbelto. Contabilizar p...

Skills relacionados