Compatibility with TrueGrid

James reads TrueGrid-style input and is not affiliated with TrueGrid or its publisher. A script that uses only the commands in the command reference runs in James without change, with the differences this chapter lists. Every other command of TrueGrid’s that James knows is either refused with a message naming it and the page of TrueGrid’s manual that documents it, or accepted and ignored because it only draws a picture or belongs to an interactive session; both sets are listed here in full. A word James does not know at all is reported as not a command it recognizes.

The posture

James reads a documented subset of TrueGrid’s language and runs it unchanged. Where TrueGrid imposes a limit for no reason James can find, James relaxes it. Where scripts rely on a quirk, James keeps the quirk. James does not copy TrueGrid bug for bug, and it does not promise that a mesh it writes matches TrueGrid’s node for node.

What runs unchanged

The commands in the command reference run as they do in TrueGrid, with the differences in the next section. A script that uses only those commands needs no change.

Known differences

Each item is a rule James applies. The command pages say more about the ones they concern.

  • Picture commands are accepted and ignored. James draws nothing. Each command in the table “Commands accepted and ignored” discards the rest of its line and leaves no trace. rx, ry and rz are in that table and are also operators inside tr and tri; James reads them as operators there.
  • interrupt, resume and caption do nothing. caption checks that its option is cap, on or off, and James raises E0217 otherwise.
  • neutral selects James’s own format. TrueGrid’s neutral command writes TrueGrid’s neutral file. In James it selects James’s plain-text neutral file, which the neutral page describes. James accepts the command silently.
  • comment and verbatim are read and discarded. The text they carry has nowhere to go in the two formats James writes. A verbatim block must still end with endverbatim (E1102).
  • Two output formats. James writes neutral and Exodus II. Every other format selector is refused, and the table “Refused commands” lists them.
  • Hex solids only. A negative entry in a block or cylinder list marks a shell partition, which James refuses (E0400). A 0 entry marks a gap, which James refuses too (E0413). Milestone M11 lifts both.
  • Deeper nesting. include files nest to 32 levels where TrueGrid allows 19. when, for and while nest to 64 together, and if to 64, where TrueGrid documents 19 or 20.
  • Wider numbers. An integer may reach 2147483647 in magnitude, where TrueGrid documents about 1e9. A real number may take any double-precision value, where TrueGrid documents a range of about 1e-18 to 1e18.
  • An if closes in the file that opened it. An if opened in an include file and closed in the file that includes it raises E0319 in the first and E0300 in the second.
  • The merge’s tie-break and zero rule. James visits nodes in the order of their numbers before the merge. Each node merges into the closest node that has already survived within the tolerance, and of two equally close survivors it takes the lower-numbered. A pair merges when its distance is less than the tolerance, so a tolerance of zero merges nothing. A chain of nodes each within tolerance of the next does not collapse to one node. The last tolerance command before a write governs alone.
  • The merge report is printed after the file. A write that cannot open its file prints no report.
  • The Exodus II layout. The file holds the coordinates, one HEX8 block per part and a QA record. It holds no node or element maps, no sets, no materials and no date.
  • --format is a fallback. A format command in the script overrides the command-line flag.
  • A second format command warns. A second neutral or exodusii that names a different format, before any write has used the first, raises E1104, and the later one governs. Repeating the same format is silent, and so is switching format after a write.
  • A second title replaces the first, with no message.
  • A part’s bad lists open it poisoned. A block or cylinder whose lists raise E0400, E0401, E0402, E0403 or E0413 still opens its part. James reads the commands that follow against corrected lists and the part adds nothing to the mesh. You see the one real error and not a row of phase errors after it.
  • A repeated inline surface is a second surface. Two identical inline definitions in sf, sfi or ms make two surfaces. To reuse a surface, define it once with sd and refer to its number.
  • sds takes a plain list. The list of surface numbers has no colon shorthand such as 1:4; James raises E0104.
  • An angle past 360 degrees is kept, and converts periodically when the part ends. An mb or mbi offset may carry the angle of a cylinder part outside 0 to 360 degrees. James neither rejects nor reduces it. The part converts to Cartesian coordinates at endpart, so 390 degrees lands where 30 does.
  • A part whose every element is deleted warns. James meshes it, writes none of its nodes unless you pass --write-unref-nodes, and prints a warning that names the flag.
  • A part with no element is meshed, not refused. A list with one entry gives one node and no element in that direction. James meshes it, warns, and writes none of its nodes unless you pass --write-unref-nodes.
  • The engine’s lines are capped at 4096. --engine-lines n raises the cap. A line before the summary says how many lines were not recorded and names the flag.
  • Node caps. A part holds at most 100000000 nodes and one write at most 250000000. James stops with exit code 2 beyond either.
  • Six surface kinds, two 3D curve types and three 2D segment kinds. sd builds plan, cy, sp, cone, crx/cry/crz and sds; every other type raises E1004 and every other inline type E0801. curd builds lp3 and csp3, one group per curve; every other type raises E0603. A 2D curve takes lp2, lar and lcc segments; every other raises E1009. Milestone M13 adds kinds.
  • edge, patch, spp and nds are refused for want of what they need. nds needs a density function, which only the refused ndd makes (E0904). spp needs a template, which only the refused tmplt makes (E0804). edge and patch need a surface that has edges, and none of the surfaces James builds has one. Milestone M13 lifts all four.
  • Five transformation operators are refused. tr and tri take thirteen operators; tf, ftf, rxy, ryz and rzx raise E0503. Milestone M14 reconsiders them.
  • James does not reorder an inverted part. A part with negative Jacobians gets a warning per part, and its elements are written as they are. Milestone M9 reorders the corners of an inverted part.

Refused commands

James knows these 86 commands. It refuses 80 of them with E0100, and the message names the page of the original manual that documents the command. It reports the six equations x= to t3= as not recognized (E0105) in this version, so their message names no page. The tier says which part of the project’s plan the command belongs to, and the milestone says when it arrives. Milestones are plans, not promises; the changelog records what each version holds.

Command Where it is documented Tier Milestone
tpara Vol. 2, p. 478 long-term long-term
bb Vol. 1, pp. 379-384 near-term M14
trbb Vol. 1, pp. 394-395 near-term M14
dom Vol. 1, p. 277 near-term M12
cycorsy Vol. 1, p. 438 near-term M11
neui Vol. 1, p. 255 near-term M10
unifmi Vol. 1, p. 261 near-term M10
blude Vol. 2, p. 355 long-term long-term
update Vol. 1, p. 197 near-term M12
orpt Vol. 1, p. 196 near-term M11
pbs Vol. 1, pp. 202-203 long-term long-term
ma Vol. 1, pp. 207-208 near-term M12
pa Vol. 1, pp. 207-208 near-term M12
relax Vol. 1, pp. 238-240 near-term M10
relaxi Vol. 1, p. 240 near-term M10
esm Vol. 1, pp. 226-228 near-term M10
esmp Vol. 1, pp. 228-229 near-term M10
tme Vol. 1, pp. 247-252 near-term M10
tmei Vol. 1, p. 251 near-term M10
unifm Vol. 1, pp. 257-260 near-term M10
neu Vol. 1, p. 252 near-term M10
hyr Vol. 1, p. 229 near-term M10
ssf Vol. 1, p. 414 near-term M11
ssfi Vol. 1, p. 414 near-term M11
tmplt Vol. 1, p. 268 near-term M13
accuracy Vol. 2, p. 99 near-term M13
npll Vol. 2, p. 103 near-term M13
project Vol. 2, pp. 104-105 near-term M13
ndd Vol. 1, p. 275 near-term M13
dndd Vol. 1, p. 275 near-term M13
apld Vol. 2, p. 20 not classified none scheduled
rlns Vol. 2, p. 37 not classified none scheduled
nerl Vol. 2, pp. 433-434 near-term M9 (its gate decides)
ptol Vol. 2, pp. 452-457 near-term M14
bptol Vol. 2, pp. 452-457 near-term M14
bnstol Vol. 2, pp. 452-457 long-term long-term
mns Vol. 2, pp. 452-457 long-term long-term
elvotest Vol. 2, p. 486 long-term long-term
epb Vol. 2, pp. 486-487 long-term long-term
ndigits Vol. 2, pp. 486-487 long-term long-term
npb Vol. 2, pp. 486-487 long-term long-term
save Vol. 2, pp. 486-487 long-term long-term
x= Vol. 2, p. 459 near-term M12 (E0105 today)
y= Vol. 2, p. 459 near-term M12 (E0105 today)
z= Vol. 2, p. 459 near-term M12 (E0105 today)
t1= Vol. 2, p. 459 near-term M12 (E0105 today)
t2= Vol. 2, p. 459 near-term M12 (E0105 today)
t3= Vol. 2, p. 459 near-term M12 (E0105 today)
abaqus Vol. 2, pp. 489-494 near-term M9
ale3d Vol. 2, pp. 489-494 additional writers none scheduled
ansys Vol. 2, pp. 489-494 additional writers none scheduled
autodyn Vol. 2, pp. 489-494 additional writers none scheduled
cf3d Vol. 2, pp. 489-494 additional writers none scheduled
cfd-ace Vol. 2, pp. 489-494 additional writers none scheduled
cfx Vol. 2, pp. 489-494 additional writers none scheduled
dyna3d Vol. 2, pp. 489-494 near-term M9
es3d Vol. 2, pp. 489-494 additional writers none scheduled
fidap Vol. 2, pp. 489-494 additional writers none scheduled
fluent Vol. 2, pp. 489-494 additional writers none scheduled
gemini Vol. 2, pp. 489-494 additional writers none scheduled
gridgen3d Vol. 2, pp. 489-494 additional writers none scheduled
iri Vol. 2, pp. 489-494 additional writers none scheduled
lsdyna Vol. 2, pp. 489-494 near-term M9
lsnike3d Vol. 2, pp. 489-494 additional writers none scheduled
icfep Vol. 2, pp. 489-494 additional writers none scheduled
kiva3v Vol. 2, pp. 489-494 additional writers none scheduled
kiva Vol. 2, pp. 489-494 additional writers none scheduled
marc Vol. 2, pp. 489-494 additional writers none scheduled
mpact Vol. 2, pp. 489-494 additional writers none scheduled
nastran Vol. 2, pp. 489-494 additional writers none scheduled
nike3d Vol. 2, pp. 489-494 additional writers none scheduled
enike3d Vol. 2, pp. 489-494 additional writers none scheduled
nnike3d Vol. 2, pp. 489-494 additional writers none scheduled
fnike3d Vol. 2, pp. 489-494 additional writers none scheduled
nekton2d Vol. 2, pp. 489-494 additional writers none scheduled
nekton3d Vol. 2, pp. 489-494 additional writers none scheduled
ne/nastran Vol. 2, pp. 489-494 additional writers none scheduled
refleqs Vol. 2, pp. 489-494 additional writers none scheduled
sap2000 Vol. 2, pp. 489-494 additional writers none scheduled
starcd Vol. 2, pp. 489-494 additional writers none scheduled
plot3d Vol. 2, pp. 489-494 additional writers none scheduled
poly3d Vol. 2, pp. 489-494 additional writers none scheduled
tascflow Vol. 2, pp. 489-494 additional writers none scheduled
topaz3d Vol. 2, pp. 489-494 additional writers none scheduled
topaz3d2 Vol. 2, pp. 489-494 additional writers none scheduled
viewpoint Vol. 2, pp. 489-494 additional writers none scheduled

The 35 format selectors the table marks “additional writers” have no milestone. The three that milestone M9 builds, lsdyna, abaqus and dyna3d, carry it. A format selector that is not in the table raises E0105, as does any other word James does not know.

Commands accepted and ignored

These 74 commands only draw a picture or steer an interactive session. James reads each one, discards the rest of its line, and prints nothing.

Command What it draws
ad the view and picture controls of the session
aad the view and picture controls of the session
daad the view and picture controls of the session
dad the view and picture controls of the session
dads the view and picture controls of the session
display the view and picture controls of the session
disp the view and picture controls of the session
draw the view and picture controls of the session
grid the view and picture controls of the session
pad the view and picture controls of the session
poor the view and picture controls of the session
postscript the view and picture controls of the session
raad the view and picture controls of the session
rad the view and picture controls of the session
rindex the view and picture controls of the session
sdint the view and picture controls of the session
set the view and picture controls of the session
slice the view and picture controls of the session
triad the view and picture controls of the session
tvv the view and picture controls of the session
zclip the view and picture controls of the session
l the view and picture controls of the session
r the view and picture controls of the session
u the view and picture controls of the session
d the view and picture controls of the session
rx the view and picture controls of the session
ry the view and picture controls of the session
rz the view and picture controls of the session
trans the view and picture controls of the session
fix the view and picture controls of the session
unfix the view and picture controls of the session
scale the view and picture controls of the session
xscl the view and picture controls of the session
yscl the view and picture controls of the session
zscl the view and picture controls of the session
zb the view and picture controls of the session
zf the view and picture controls of the session
angle the view and picture controls of the session
reso the view and picture controls of the session
restore the view and picture controls of the session
center the view and picture controls of the session
ibzone picture controls (ibzone, noplot, plot)
noplot picture controls (ibzone, noplot, plot)
plot picture controls (ibzone, noplot, plot)
lcv 2D curve display
lv 2D curve display
lvi 2D curve display
lvs 2D curve display
dcd 3D curve display
dcds 3D curve display
dacd 3D curve display
acd 3D curve display
acds 3D curve display
rcd 3D curve display
rcds 3D curve display
racd 3D curve display
lacd 3D curve display
asd surface display
asds surface display
ansd surface display
dasd surface display
dsd surface display
dsds surface display
lasd surface display
rasd surface display
rsd surface display
alv CAD geometry display
dlv CAD geometry display
dlvs CAD geometry display
rlv CAD geometry display
agrp CAD geometry display
dgrp CAD geometry display
dgrps CAD geometry display
rgrp CAD geometry display

The tiers

This is the plan, tier by tier, in the order James takes it up.

  • Now. Hex solids, the commands in the command reference, merging under the four tolerance commands, and the neutral and Exodus II files.
  • Near-term, one milestone at a time. M9 builds the LS-DYNA keyword, Abaqus and DYNA3D writers, with material numbers from mate, mt and mti and the reordering of an inverted part. M10 builds the smoothing commands relax, esm, tme and unifm, and whichever of their relatives its design gate takes. M11 builds shell partitions and shell elements with ssf, ssfi, orpt and gaps. M12 builds the coordinate equations with dom, update, ma and pa. M13 adds surface and curve kinds, then tmplt, ndd and dndd, which unblock edge, patch, spp and nds. M14 builds block boundaries, bb and trbb, with ptol and bptol.
  • Long-term. Beams, IGES import, material properties, loads, boundary conditions and sets, and the commands that need them: blude, bnstol, mns and epb. Replication and transformation commands. Interactive mode, which pbs and the pt coordinate type need. The write options elvotest, ndigits, npb and save.
  • Never. A graphical user interface, and bug-for-bug emulation of TrueGrid’s limits.

  • Sources: TrueGrid User’s Manual v3.0.0, Vol. 1, pp. 196-197, 202-203, 207-208, 226-229, 238-240, 247-252, 255, 257-261, 268, 275, 277, 379-384, 394-395, 414, 438; Vol. 2, pp. 20, 37, 99, 103-105, 355, 433-434, 452-457, 459, 478, 486-487, 489-494

James 0.3.1.

This site uses Just the Docs, a documentation theme for Jekyll.