FEM / CAE — estrutural · térmico · CFD · multifísico
Esta habilidade governa reivindicações de engenharia — ela não aciona solvers nem aprova projetos. Ela se emparelha com um driver de solver / MCP (PyMAPDL, PyMechanical, um driver Abaqus / OpenFOAM, OASiS, um CAE MCP) que executa; esta habilidade decide se um resultado pode ser reivindicado, em que altitude, e quando um humano deve decidir.
Visão Geral
Governa a análise de elementos finitos e CAE de ponta a ponta. Emparelhado com um executor (PyMAPDL, PyMechanical,
PyFluent, um driver Abaqus/OpenFOAM, um CAE MCP — veja "camada de governança, não o executor" abaixo) o executor
localiza o solver instalado, constrói o deck/script, e inicia headless/batch; esta habilidade orienta e
audita a idealização, lê o log para convergência, inspeciona/analisa os resultados, e impõe a prática profissional
(idealização → malhamento → conexões → controles de solução → convergência → independência de malha → V&V) em cada execução. A metodologia é independente de solver; a profundidade trabalhada aqui é Ansys / Simcenter / Thermal Desktop, com
abrangência em Abaqus, LS-DYNA, MSC/Simcenter Nastran, COMSOL, OpenFOAM, Fluent, CFX, STAR-CCM+, CalculiX,
Code_Aster (veja references/software-landscape.md).
Princípios centrais (aplicados como portões):
- Nenhum resultado é confiável até que seu erro de discretização (malha/passo de tempo) seja tratado — limitado e declarado em ENGINEERING (ex. mudança no QoI do último refinamento, ou uma estimativa ZZ/SPR de malha única), totalmente demonstrado com um estudo GCI na faixa assintótica para SIGNOFF; um número de malha única relatado sem qualquer declaração de erro nunca é um resultado. Além das verificações de convergência abaixo.
- Convergir a Quantidade de Interesse (QoI), não o pico — picos em cantos vivos/cargas pontuais/pontas de trinca são singularidades que nunca convergem.
- A maioria do erro nasce no pré-processamento (idealização, CCs, conexões) — antecipe essas decisões.
- Verificação antes da validação; calibração ≠ validação — e um agente não deve reivindicar aprovação final sem evidência de execução.
Este SKILL.md é o roteador. A profundidade reside em references/ — carregue uma referência apenas quando seu tópico estiver em jogo.
Quando usar
- Estrutural (estático/modal/flambagem/não linear/explicito), térmico (estacionário/transiente/radiação), CFD (RANS/LES, CHT), eletromagnetismo (baixa/alta frequência), vibroacústica/NVH, multicorpos, e multifísico acoplado (termo-mecânico, FSI, EM-térmico).
- Falha e durabilidade: fratura / tolerância ao dano, fadiga (incl. vibração/espectral), compósitos, plasticidade / shakedown / ratcheting, flambagem e estabilidade, colisão / impacto / queda.
- Contato, resistência térmica de contato, conexões aparafusadas/soldadas/rígidas; malhamento e independência de malha (GCI); seleção de elemento/solver/unidade.
- Solução headless/batch e análise de resultados; otimização, calibração, identificação inversa de parâmetros / atualização de modelo.
- V&V / UQ; subestruturação / ROM; térmica criogênica / vácuo / espacial.
- Decidir o que um agente pode automatizar headless vs o que um humano deve fazer (próxima seção).
Não para: modelagem CAD pura ou problemas melhor resolvidos por um cálculo manual de forma fechada.
★ Contrato de capacidade do agente & headless-vs-humano
Exatamente quem faz o quê. Categorias: AGENT-HEADLESS (totalmente scriptável/batch, sem GUI) · AGENT-VIA-API (API Python/journal, precisa de uma sessão + licença) · HUMAN-GUI (deve ser interativo pelo menos uma vez) · HUMAN-JUDGMENT (decisão de engenharia que o agente não deve tomar sozinho) · LICENSE-GATED. Detalhes completos por plataforma: references/agent-automation-boundary.md.
| Operação | Classificação | Como / porquê |
|---|---|---|
| Importação CAD | AGENT-VIA-API | PyMAPDL/PyMechanical/run_journal importam STEP/Parasolid |
| Limpeza geométrica / desbaste pesado | AGENT-VIA-API + HUMAN-JUDGMENT | desbaste/pinch scriptável; reparo complexo + o que desbastar é julgamento |
| Malhagem | AGENT-HEADLESS (Ansys) · SEED-IN-GUI (NX) | Malha PyMAPDL/PyMechanical totalmente headless; Modelos .fem/.sim do NX não resolvem em batch → semear uma vez na GUI |
| Criar/atribuir material | AGENT-HEADLESS | scriptável em todas as plataformas; fornecer dados dependentes de T |
| Contatos / conexões | AGENT-HEADLESS (construção) + HUMAN-JUDGMENT (tipo) | definir é scriptável; soldado vs atrito / RBE2 vs RBE3 é uma escolha de engenharia |
| CCs e cargas | AGENT-HEADLESS | scriptável; o agente não deve inventar o caso de carga |
| Expor parâmetros para otimização | AGENT-HEADLESS (PyMAPDL *SET) · HUMAN-GUI (Workbench P#, Expressões NX, tags HEEDS) | apenas PyMAPDL é livre de GUI para parametrização |
| Resolver (estacionário/transiente/não linear) | AGENT-HEADLESS + LICENSE-GATED | ansys -b, nastran.exe, tmgnx, abaqus job=, fluent -g, OpenFOAM, cfx5solve -batch, starccm+ -batch |
| Resolução eletromagnética (máquinas/RF/eddy) | AGENT-VIA-API + LICENSE-GATED | PyAEDT (import ansys.aedt.core, non_graphical=True), batch COMSOL/getDP; portas/excitações/varreduras são configuração de engenharia |
| Otimização / DOE / calibração | AGENT-HEADLESS (PyMAPDL+SciPy, optiSLang -b, CLI HEEDS) + GUI-AUTHOR-ONCE | criar o estudo/tags na GUI uma vez, depois executar headless |
| Extração de resultados | AGENT-HEADLESS | PyDPF, pyNastran (.op2/.f06), .odb, SINDA .out, CGNS/VTK |
| Imagens/plots pós-processamento | AGENT-HEADLESS | pyvista off-screen, ParaView pvbatch |
| Correlação / atualização de modelo (MAC, pareamento de nós) | HUMAN-GUI | pareamento interativo de nós teste↔análise é trabalho de GUI |
Criação de modelo / .sim / projeto (NX) | HUMAN-GUI | registro de modelo não inicializado headless → pré-criar um seed, depois dirigi-lo |
| Licenciamento | LICENSE-GATED | cada instância paralela do solver consome sua própria licença |
Um agente NUNCA deve fazer automaticamente: escolher idealização / elemento / tipo de contato / CC sozinho (HUMAN-JUDGMENT) · aceitar um botão de calibração fixado em sua borda de corredor físico · relatar um pico singular ou um resultado não convergido como resultado · reivindicar verificação / independência de malha / aprovação final sem a evidência da execução · realizar um push/sobrescrita irreversível sem autorização.
Emparelhamento & contrato do executor
Esta habilidade é a camada de governança, não o executor. Emparelhe-a com o que quer que acione o solver (PyMAPDL, PyMechanical, um driver Abaqus / OpenFOAM, OASiS, um CAE MCP): o executor roda; esta habilidade governa a reivindicação. Não confie em nenhuma saída de solver sem proveniência — um resultado é creditável apenas quando o executor retorna:
- Manifesto de execução (
run_manifest.json, modeloscripts/run_manifest_template.json) — a espinha dorsal da rastreabilidade (NAFEMS R0033). - Nome do solver + versão exata — lido do banner/
-helpda instalação detectada, nunca assumido. - Hash do deck de entrada + hash do arquivo de resultado (ex. SHA-256 do
.inp/.dat/.cdbe do.rst/.rth/.op2) — vincula um número ao deck exato e ao resultado que o produziu. - Evidência de comando + flag — a linha de lançamento real, flags verificadas contra essa versão (regra de comandos alinhados à versão, Passo 0).
- Espaço de trabalho isolado — um diretório de trabalho limpo; saídas escritas lá, nunca sobrescrevendo um "final" anterior sem um ponteiro
superseded_by.
Um resultado sem essa proveniência é um artefato SMOKE/DEBUG na melhor das hipóteses — expresse-o como tal (references/claim-templates.md).
Modos de execução (escolha um por tarefa — define os portões obrigatórios e o que você pode reivindicar)
| Modo | Quando usar | Portões obrigatórios | Nunca |
|---|---|---|---|
| SMOKE | provar que env/deck/solve/análise roda | Passo 0; resolver completa; arquivo de resultado escrito e legível | reivindicar qualquer número de engenharia; ajustar qualquer coisa |
| DEBUG | encontrar a causa de uma falha | o único teste decisivo para o sintoma; portão de conectividade se térmico | apresentar uma solução diagnóstica como resultado |
| ENGINEERING | resultado utilizável + verificações de sanidade | unidades; conectividade; balanço de reações/calor/massa; convergência; extração de QoI; verificação de singularidade | reivindicar aprovação final; relatar um pico singular |
| SIGNOFF | entrega defensável | todo ENGINEERING + independência de malha e passo de tempo (GCI, faixa assintótica) + relatório rastreável + limites de erro | pular qualquer portão; menosprezar incerteza |
Um resultado SMOKE/DEBUG é uma verificação de pipeline/física, nunca uma conclusão de engenharia — rotule-o.
★ Auto-verificação pré-reivindicação — responda TODAS antes de declarar qualquer número de engenharia
Este é o portão que torna a habilidade confiável. Antes de digitar uma tensão, temperatura, frequência, margem, arrasto, ou "passa", responda a estas. Se alguma resposta for não / desconhecido, você não tem um resultado — você tem uma saída SMOKE/DEBUG: diga isso e pare.
- Modo? Em qual modo de execução estou, e seus portões obrigatórios foram aprovados? (SMOKE/DEBUG ⇒ não é uma conclusão de engenharia.)
- Unidades? Sistema consistente verificado (verificação de massa de 1g / cálculo manual); densidade não está corrompida?
- Erro de discretização tratado? Erro de malha e passo de tempo limitado e declarado (GCI para SIGNOFF; estimativa ZZ/SPR de malha única para ENGINEERING)? Um número isolado de malha única nunca é um resultado.
- Singularidade excluída? O QoI está em um canto / carga pontual / artefato de ponta de trinca? Leia ao redor ou linearize antes de citar.
- Balanço verificado? Reação = aplicada; balanço de calor/massa/energia dentro da tolerância; convergência a partir do histórico residual, não do código de saída?
- Tensão admissível nomeada? Existe uma margem contra um critério / código de projeto NOMEADO — não um número nu?
- Portão de julgamento humano cruzado? Eu escolhi silenciosamente um caso de carga, tipo de contato, admissível, desbaste, ou aprovação final? Se sim — PARE e escale (
references/escalation-examples.md).
Em seguida, expresse o resultado com o modelo correspondente em references/claim-templates.md. O agente nunca reivindica aprovação final
sem evidência de execução, e nunca se autoriza a tomar uma decisão de engenharia. Chamadas exatas de flags / API do solver
são elas próprias uma reivindicação — confirme-as de acordo com a regra de comandos alinhados à versão no Passo 0.
Passo 0 — SEMPRE primeiro: descoberta do ambiente
Nunca assuma uma versão ou caminho. Encontre o que está instalado/licenciado, depois confirme 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; também `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; verifique $LM_LICENSE_FILE, nproc.
Regra de comandos alinhados à versão: nunca emita um comando, flag ou chamada de API do solver que você não verificou que existe na versão detectada — versões renomeiam flags e alteram APIs. Confirme contra o -help/documentos da versão instalada antes de confiar nela, especialmente para ENGINEERING/SIGNOFF.
Fluxo de trabalho canônico (execute em ordem)
- Objetivo + QoI — o escalar que conduz a decisão (margem, deflexão, frequência, pico de T, arrasto). Não é "rodar o modelo."
- Tipo de análise — estático/modal/flambagem/térmico/CFD/acoplado; linear vs não linear (material? grande deflexão? contato? turbulência?).
- Idealizar (mais consequente) — 1D/2D/3D; simetria apenas se geometria e cargas e CCs forem simétricos; desbastar características irrelevantes. →
references/meshing-convergence.md. - Materiais — modelo constitutivo correto; propriedades dependentes de temperatura; em criogênico use ∫α(T)dT. →
references/material-modeling.md. - Malha — ordem/família do elemento, refinamento em concentrações, portão de qualidade. →
references/meshing-convergence.md. - Conexões e contato. →
references/mechanical-connections.md,references/thermal-contact-resistance.md. - CCs e cargas — remova apenas os modos de corpo rígido apropriados para a dimensionalidade/tipo do modelo (um sólido 3D não restrito tem 6; modelos 2D, axissimétricos, apenas casca e cíclico-simétricos diferem); cargas sobre áreas realistas (nunca cargas pontuais/restrições → singularidades); alívio inercial para corpos livres. →
references/advanced-methods.md. - Controles de solução — tipo de solver, núcleos, subpassos + tolerâncias. →
references/solver-numerics.md. - Verificar — equilíbrio, independência de malha/passo de tempo, histórico de convergência. →
references/vv-uq.md. - Validar — vs teste / cálculo manual / benchmark NAFEMS (calibração ≠ validação).
- Pós-processamento e relatório — medida correta, verificação de média-vs-não-média, margens, suposições declaradas.
Unidades consistentes (escolha UM sistema; solvers são livres de unidade)
| Sistema | Comprimento | Força | Tensão/E | Massa | Densidade (aço) | g |
|---|---|---|---|---|---|---|
| SI (m) | m | N | Pa | kg | 7850 kg/m³ | 9.81 m/s² |
| mm-t-s (CAE comum) | mm | N | MPa | tonelada | 7.85e-9 t/mm³ | 9810 mm/s² |
A densidade é a corruptora silenciosa: densidade com unidade errada passa na estática mas arruína todo resultado dinâmico/explicito/transiente-térmico. MAPDL /UNITS é apenas metadados. Verifique com uma verificação de massa de 1g ou uma frequência natural de cálculo manual.
Seleção de elemento & qualidade de malha (profundidade: references/meshing-convergence.md)
- Quadrático (nós médios) para tensão/geometria curva, esp. tets — evite TET4 linear para tensão (deformação constante → muito rígido, convergência de tensão lenta; aceitável apenas como preenchimento bem longe do QoI). Linear para explícito/grande deformação. (Travamento por cisalhamento afeta quadrados/hexaedros lineares totalmente integrados em flexão — cisalhamento parasita; corrija com integração reduzida, modos incompatíveis, ou quadrático — não é o mesmo defeito da rigidez de deformação constante do TET4.) Sólidos quadráticos modernos resolvem flexão moderada com ~1 elemento através da espessura como ponto de partida (conduzido por curvatura — confirme por convergência); elementos lineares precisam de vários, e flexão crítica de precisão quer ≥2 quadráticos.
- Casca se espessura/comprimento ≲ 1/10–1/20; sólido para tensão 3D/através da espessura; viga para esbelto. Considere sh...