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,ryandrzare in that table and are also operators insidetrandtri; James reads them as operators there. interrupt,resumeandcaptiondo nothing.captionchecks that its option iscap,onoroff, and James raises E0217 otherwise.neutralselects James’s own format. TrueGrid’sneutralcommand writes TrueGrid’s neutral file. In James it selects James’s plain-text neutral file, which theneutralpage describes. James accepts the command silently.commentandverbatimare read and discarded. The text they carry has nowhere to go in the two formats James writes. Averbatimblock must still end withendverbatim(E1102).- Two output formats. James writes
neutraland Exodus II. Every other format selector is refused, and the table “Refused commands” lists them. - Hex solids only. A negative entry in a
blockorcylinderlist marks a shell partition, which James refuses (E0400). A0entry marks a gap, which James refuses too (E0413). Milestone M11 lifts both. - Deeper nesting.
includefiles nest to 32 levels where TrueGrid allows 19.when,forandwhilenest to 64 together, andifto 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
ifcloses in the file that opened it. Anifopened in anincludefile 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
HEX8block per part and a QA record. It holds no node or element maps, no sets, no materials and no date. --formatis a fallback. A format command in the script overrides the command-line flag.- A second format command warns. A second
neutralorexodusiithat names a different format, before anywritehas used the first, raises E1104, and the later one governs. Repeating the same format is silent, and so is switching format after awrite. - A second
titlereplaces the first, with no message. - A part’s bad lists open it poisoned. A
blockorcylinderwhose 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,sfiormsmake two surfaces. To reuse a surface, define it once withsdand refer to its number. sdstakes a plain list. The list of surface numbers has no colon shorthand such as1:4; James raises E0104.- An angle past 360 degrees is kept, and converts periodically when the part ends. An
mbormbioffset may carry the angle of acylinderpart outside 0 to 360 degrees. James neither rejects nor reduces it. The part converts to Cartesian coordinates atendpart, 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 nraises 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.
sdbuildsplan,cy,sp,cone,crx/cry/crzandsds; every other type raises E1004 and every other inline type E0801.curdbuildslp3andcsp3, one group per curve; every other type raises E0603. A 2D curve takeslp2,larandlccsegments; every other raises E1009. Milestone M13 adds kinds. edge,patch,sppandndsare refused for want of what they need.ndsneeds a density function, which only the refusednddmakes (E0904).sppneeds a template, which only the refusedtmpltmakes (E0804).edgeandpatchneed a surface that has edges, and none of the surfaces James builds has one. Milestone M13 lifts all four.- Five transformation operators are refused.
trandtritake thirteen operators;tf,ftf,rxy,ryzandrzxraise 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,mtandmtiand the reordering of an inverted part. M10 builds the smoothing commandsrelax,esm,tmeandunifm, and whichever of their relatives its design gate takes. M11 builds shell partitions and shell elements withssf,ssfi,orptand gaps. M12 builds the coordinate equations withdom,update,maandpa. M13 adds surface and curve kinds, thentmplt,nddanddndd, which unblockedge,patch,sppandnds. M14 builds block boundaries,bbandtrbb, withptolandbptol. - Long-term. Beams, IGES import, material properties, loads, boundary conditions and sets, and the commands that need them:
blude,bnstol,mnsandepb. Replication and transformation commands. Interactive mode, whichpbsand theptcoordinate type need. The write optionselvotest,ndigits,npbandsave. -
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