Step 4 — Create the mesh audit record
Before solving, each mesh must demonstrate four properties:
*GET,n_nodes(i),NODE,0,COUNT
*GET,n_elems(i),ELEM,0,COUNT
ESEL,S,TYPE,,1
*GET,n_type1(i),ELEM,0,COUNT
ALLSEL,ALL
ESEL,S,MAT,,1
*GET,n_mat1(i),ELEM,0,COUNT
ALLSEL,ALLThe test passes only when:
n_elems = div_x*div_y*div_z
n_nodes = (div_x+1)*(div_y+1)*(div_z+1)
n_type1 = n_elems
n_mat1 = n_elemsThis is how we connect M04 with M03: a finer mesh that loses its attributes is not an improvement of the same model, but another model.
Step 5 — Turn quality into a test
SHPP,DEFAULT
SHPP,ON
...
SHPP,SUMMARY
CHECK,ESEL,WARN
*GET,n_shape_bad(i),ELEM,0,COUNT
ALLSEL,ALL
SHPP,SUMMARY lists the shape-test summary for the selected elements.
Then CHECK,ESEL,WARN does something especially useful: it deselects elements
with no issues and retains only those that produce warnings or errors. Therefore,
n_shape_bad=0 is a condition that can be checked automatically.
CHECK modifies the selection
If you do not execute ALLSEL,ALL afterward, the test case could operate only
on the problematic elements or on an empty set.
Step 6 — The inherited test case
To measure convergence we need a physical response. The next block reuses the vertical route that you already executed in M00:
NSEL,S,LOC,X,0
D,ALL,ALL,0
ALLSEL,ALL
NSEL,S,LOC,X,beam_l
*GET,n_tip,NODE,0,COUNT
force_per_node=tip_force/n_tip
F,ALL,FY,force_per_node
ALLSEL,ALL
FINISH
/SOLU
ANTYPE,STATIC,NEW
SOLVE
FINISH
/POST1
SET,LAST
*GET,uy_tip(i),NODE,probe_node,U,YIn M04 this block works like a laboratory instrument: all its inputs remain constants and only returns one reading. M05 will explain and audit the boundary conditions; M06, the solution and balance; M07, the extraction and validation of results.
The measurement node is selected by X=beam_l, Y=0 and Z=0.
That coordinate exists in all meshes. Writing an ID would mix refinement with a change
accidental of the observed point.