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 :doc:`/reference/elements/index`. 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 (:doc:`/reference/elements/index`) and the verification gallery (:doc:`/gallery/verification/index`) — both of which carry explicit cross-solver accuracy comparisons against MAPDL VM, NAFEMS, Abaqus AVM, and CalculiX results where available.