Cross-vendor terminology Rosetta#

Every commercial FEA package developed its own dialect. The same idea has different names — and worse, sometimes the same name means different things across vendors. This Rosetta table maps femorph-solver’s vocabulary against the four most-encountered commercial codes (ANSYS Mechanical APDL, MSC / NX Nastran, Abaqus / SIMULIA, LS-DYNA) plus the Code_Aster open-source family where its conventions add useful context.

Use it two ways:

  • You learned FEA on MAPDL — read the MAPDL column to find the femorph-solver vocabulary you’ll see in this docs corpus.

  • You’re authoring an interop layer — read the femorph-solver column to find the cards / keywords / commands the foreign reader has to map onto.

The table is curated for the linear-elastic structural-mechanics slice femorph-solver ships today. Non-linear, contact, plasticity, and explicit-dynamics rows are added as those analysis types land.

Element types#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

ELEMENTS.HEX8

SOLID185

NASTRAN CHEXA(8); Abaqus C3D8 / C3D8I; LS-DYNA ELFORM=1/2

ELEMENTS.HEX20

SOLID186

NASTRAN CHEXA(20); Abaqus C3D20 / C3D20R; LS-DYNA ELFORM=23

ELEMENTS.TET10

SOLID187

NASTRAN CTETRA(10); Abaqus C3D10; LS-DYNA ELFORM=16

ELEMENTS.QUAD4_PLANE

PLANE182

NASTRAN CQUAD4 (PSHELL plane-stress); Abaqus CPS4 / CPE4 / CAX4

ELEMENTS.QUAD4_SHELL

SHELL181

NASTRAN CQUAD4 (PSHELL); Abaqus S4 / S4R; LS-DYNA ELFORM=2/16

ELEMENTS.BEAM2

BEAM188

NASTRAN CBEAM / CBAR; Abaqus B31 / B33; LS-DYNA ELEMENT_BEAM

ELEMENTS.TRUSS2

LINK180

NASTRAN CROD / CTUBE; Abaqus T3D2; LS-DYNA ELFORM=3

ELEMENTS.SPRING

COMBIN14

NASTRAN CELAS1 / CELAS2; Abaqus SPRING1 / SPRING2; LS-DYNA ELEMENT_DISCRETE

ELEMENTS.POINT_MASS

MASS21

NASTRAN CONM1 / CONM2; Abaqus MASS; LS-DYNA ELEMENT_MASS

ELEMENTS.WEDGE15

SOLID186 (degenerate)

NASTRAN CPENTA(15); Abaqus C3D15

ELEMENTS.PYR13

SOLID186 (apex-singular)

NASTRAN CPYRAM(13); Abaqus C3D13

Each ELEMENTS.* entry has its own technical sheet under Element kernels.

Boundary conditions#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

Model.fix(node, dof)

D, node, dof, value

NASTRAN SPC1; Abaqus *BOUNDARY; LS-DYNA *BOUNDARY_SPC_NODE

fixed value (Dirichlet)

D, node, label, val

NASTRAN SPC enforced-displacement; Abaqus *BOUNDARY with two values

Model.fix(dof="ALL")

D, all, ALL

NASTRAN SPC1, SID, 123456; Abaqus *BOUNDARY, ENCASTRE; LS-DYNA flags 111111

symmetry plane

D, sym_face, U?

NASTRAN SPC1 on the through-plane DOF; Abaqus *BOUNDARY, XSYMM

cyclic / sector

CP / CPCYC

NASTRAN MPC cyclic; Abaqus *MPC, CYCLSYM; (LS-DYNA: contact only)

Loads#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

Model.apply_force(fy=)

F, node, FY, value

NASTRAN FORCE card; Abaqus *CLOAD; LS-DYNA *LOAD_NODE_POINT

Model.apply_force(mz=)

F, node, MZ, value

NASTRAN MOMENT card; Abaqus *CLOAD on rotation DOFs

distributed pressure

SF, face, PRES, value

NASTRAN PLOAD2 / PLOAD4; Abaqus *DLOAD, P; LS-DYNA *LOAD_SEGMENT

gravity / body force

ACEL, gx, gy, gz

NASTRAN GRAV card; Abaqus *DLOAD, GRAV; LS-DYNA *LOAD_BODY_X/Y/Z

thermal load

BFE, elem, TEMP, val

NASTRAN TEMP card; Abaqus *TEMPERATURE; LS-DYNA *LOAD_THERMAL_VARIABLE

Material properties#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

"EX" (Young’s modulus)

MP, EX, mat, value

NASTRAN MAT1 (E field); Abaqus *ELASTIC, type=ISO; LS-DYNA *MAT_ELASTIC

"PRXY" (Poisson ratio)

MP, PRXY, mat, value

NASTRAN MAT1 (NU field); Abaqus *ELASTIC (NU); LS-DYNA (PR field)

"DENS" (density)

MP, DENS, mat, value

NASTRAN MAT1 (RHO field); Abaqus *DENSITY; LS-DYNA (RO field)

orthotropic

MP, EX/EY/EZ + GXY

NASTRAN MAT9; Abaqus *ELASTIC, type=ENGINEERING_CONSTANTS

Analysis types#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

Model.solve_static()

ANTYPE, STATIC + SOLVE

NASTRAN SOL 101; Abaqus *STATIC; LS-DYNA implicit *CONTROL_IMPLICIT_GENERAL

Model.solve_modal()

ANTYPE, MODAL + MODOPT

NASTRAN SOL 103; Abaqus *FREQUENCY; LS-DYNA *CONTROL_IMPLICIT_EIGENVALUE

Model.solve_transient()

ANTYPE, TRANS

NASTRAN SOL 109 / SOL 112; Abaqus *DYNAMIC; LS-DYNA explicit native

Model.solve_harmonic()

ANTYPE, HARMIC

NASTRAN SOL 108 / SOL 111; Abaqus *STEADY STATE DYNAMICS

linear buckling (planned)

ANTYPE, BUCKLE

NASTRAN SOL 105; Abaqus *BUCKLE; LS-DYNA *CONTROL_IMPLICIT_BUCKLE

Result quantities#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

StaticResult.displacement

U array in .RST

NASTRAN OUG block; Abaqus U field; LS-DYNA d3plot “Coordinates”

StaticResult.reaction

RF reactions

NASTRAN OQG block; Abaqus RF field; LS-DYNA constraint-force output

nodal stress

ENS averaged

NASTRAN OES (extrapolated); Abaqus S averaged; LS-DYNA Stress in d3plot

ModalResult.frequency

FREQ output by MODOPT

NASTRAN OEF (frequencies); Abaqus F field; LS-DYNA Frequencies

ModalResult.mode_shapes

EVECTORS in .RST

NASTRAN UVE per-mode; Abaqus UR per-mode; LS-DYNA EigenmodeData

Output formats#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

.pv (canonical)

(no commercial precedent — pyvista-native)

StaticResult.save(...)

.rst written by SOLVE

NASTRAN .op2 / .f06 / .h5; Abaqus .odb / .fil; LS-DYNA d3plot

VTK / ParaView

EXPORT, VTK

NASTRAN no native VTK; Abaqus *OUTPUT, VTK (recent); LS-DYNA via LS-PrePost

mesh-archive ASCII

CDWRITE

NASTRAN BDF write; Abaqus .inp write; LS-DYNA .k keyword file

Solvers#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

linear direct (Pardiso)

EQSLV, PARDISO

NASTRAN AUTOSPC; Abaqus DIRECT; LS-DYNA LSOLVR=2

linear direct (CHOLMOD)

EQSLV, SPARSE

NASTRAN sparse; Abaqus implicit

linear direct (MUMPS)

external

Code_Aster default; available via Abaqus 2024+

eigensolver shift-invert

MODOPT, LANB

NASTRAN METHOD = LANCZOS; Abaqus EIGSOLVER = LANCZOS

eigensolver LOBPCG

MODOPT, SUBSP

(Code_Aster); not standard in commercial codes

Coordinate systems and units#

femorph-solver

ANSYS Mechanical APDL

Cross-vendor equivalents

SI default (m, kg, s, N, Pa)

CSYS, 0 global Cartesian

NASTRAN unit-agnostic (deck-set); Abaqus / LS-DYNA unit-agnostic

right-hand rule

same

same

node-numbering 1-indexed

1-indexed

1-indexed (4-byte signed in LS-DYNA)

DOF order UX UY UZ ROTX..

matches MAPDL

matches NASTRAN; Abaqus uses RX RY RZ — same content, no rename

What’s not on this table#

The following analysis types are not yet supported in femorph-solver and therefore have no Rosetta entry — they’ll be added as the corresponding feature lands:

  • contact (rigid / penalty / Lagrange-augmented)

  • metal plasticity (von-Mises, J2, Drucker-Prager)

  • hyperelasticity (Mooney-Rivlin, Ogden, …)

  • large-deformation geometric nonlinearity

  • coupled thermal-stress

  • random-vibration / DDAM (planned, see roadmap)

  • explicit dynamics

When any of those types ships, this Rosetta updates with the matching keyword / card / command set across vendors.

Where the Rosetta breaks down#

A surprising fraction of FEA mythology is “the X solver does Y slightly differently” — different default integration rules, different mass-lumping conventions, different stress-recovery schemes. This Rosetta table covers the interface vocabulary where the answers genuinely match. The numerical details live in the per-element technical sheets (Element kernels) and the verification gallery (Verification gallery) — both of which carry explicit cross-solver accuracy comparisons against MAPDL VM, NAFEMS, Abaqus AVM, and CalculiX results where available.