Skip to content

Supported boundary

OmniSolver MAPDL Interop consumes resolved finite-element state normally present in a Mechanical ds.dat or ASCII CDWRITE file. It supports block and explicit forms for nodes, elements, element types and options, material data, real constants, sections, coordinate systems, components, constraints, equations, nodal/body/ surface loads, and analysis controls through SOLVE.

Bounded selection and array procedures are lowered only when they construct an unambiguous explicit model record. Geometry construction, meshing commands, macros, arbitrary APDL control flow, and postprocessing execution are not in the contract.

Behavior Contract
Unknown model mutation Strict error; never silently ignored
Postprocessing command Reported metadata; not executed
Restart/delta deck Read for inspection; standalone write/emission/solve refused
Complex value Preserved; static adapter rejects nonzero imaginary data
Coded Function Loader records Retained for text round trip; not decoded or executed
Saved .db database Rejected before content inspection
Solver operation Owned entirely by the consuming solver

Element names are translated to public neutral kernels by documented topology and analysis role. Optional orientation/load carrier nodes remain in the neutral source representation even when an adapter lowers them to destination-supported records. That lowering is a declared representation choice, not a claim of formulation or numerical equivalence.

OmniSolver-native formulation metadata is authored only through its public Model.assign(ELEMENTS...) interface. QUAD4_SHELL explicitly selects OmniSolver's public mitc4 transverse-shear option for reproducibility. This is a destination formulation choice, not a statement about MAPDL internals; all source element names and KEYOPT values remain intact for neutral and MAPDL output.

For the optional OmniSolver adapter, linear plane-stress/strain PLANE183 edge pressures are integrated into consistent nodal forces using the published face ordering, inward-positive convention, linear pressure distribution, and two-point rule. Linear top/bottom and edge pressures on SHELL181/SHELL281 and full-360-degree pressures on axisymmetric SHELL208/SHELL209 are lowered the same way from their published face conventions. With runnable projections disabled, nonlinear follower pressure remains an explicit surface-load record for a capable consuming solver and a missing destination owner fails closed. One-row MPTEMP/MPDATA records are scalar properties, while two or more rows remain temperature laws. Documented BEAM,RECT dimensions are converted to area, bending inertias, and the Saint-Venant rectangular torsion constant; the source section and orientation carrier remain unchanged in the neutral model.

*PREAD uses its published four-field, 20-column archive layout. Numeric fields are decoded; nonnumeric fields are preserved as opaque parameter values and written back at the same field width. They are never treated as commands, paths to open, or executable expressions.

solve_dat() retains all recognized analysis controls, but its default runnable_projections=True policy targets a model OmniSolver can execute:

  • nonlinear BEAM189 is represented by two public BEAM2 elements joined at the documented midside node;
  • nonlinear SOLSH190 preserves the eight source nodes and is represented by public HEX8;
  • ARCLEN,ON is retained for output while execution uses OmniSolver's general load-controlled nonlinear route; and
  • nonlinear structural-solid and shell pressure outside that route's follower load envelope is integrated from the documented face-node order as a fixed, consistent reference-configuration nodal-load vector.

Per-node-varying structural face pressure is represented by its arithmetic mean on OmniSolver's public scalar-pressure carrier when runnable projections are enabled. The complete nodal profile remains in the neutral model and MAPDL writer output. Disabling projections preserves the varying destination profile and allows OmniSolver to issue a typed refusal when its selected whole-model drive cannot consume it.

For ordinary nonlinear, native continuation, and inverse-static dispatch, the first documented NSUBST field is carried as the requested increment count and NEQIT as the per-increment equilibrium-iteration limit. For ordinary nonlinear solves, AUTOTS selects adaptive cutback, and the documented maximum/minimum NSUBST counts become normalized minimum/maximum load-step bounds. An omitted AUTOTS uses its documented ON default; AUTO leaves the destination selector automatic; and explicit caller options still take precedence. If a public OmniSolver element route refuses adaptive scheduling with Python's capability-specific NotImplementedError, runnable mode emits a projection warning and retries with the published initial NSUBST count as a fixed increment count. Convergence, validation, backend, and option errors are not retried. This changes only execution controls, never the neutral model or MAPDL writer output. NSUBST instead controls the source arc-length radius when ARCLEN is active, so the projected load-control route does not mislabel it as a load-step count; that route starts with one full-load increment. Controls without an identical public OmniSolver knob remain retained records rather than being approximately renamed.

These are explicit interoperability projections and emit OmniSolverProjectionWarning; they are not claims of element-formulation or solution-path equivalence. runnable_projections=False disables them: BEAM189 remains BEAM3, SOLSH190 remains SOLID_SHELL_HEX8, and ARCLEN,ON selects native arc-length continuation using the first NSUBST field as its requested increment count. INVOPT,ON always selects native inverse static and defaults to OmniSolver's public unsymmetric Pardiso factor, as the published INVOPT contract requires an unsymmetric solver; it is never relabeled as an ordinary static solve. In strict mode, unsupported combinations fail with a typed solver refusal. MAXARC, MINARC, and ARCTRM always remain losslessly available to readers and writers and are never mislabeled as identical OmniSolver controls.