dei
dei is de with an index progression in place of the region. The i means the command takes a progression. It does not mean inverse.
Syntax
dei i_list ; j_list ; k_list ;
A progression is three lists, one for i, one for j and one for k, each ending in ;. James expands it to a set of regions and deletes the elements of each. Inside a progression a 0 separates unions and never means an extreme. The concepts chapter explains progressions.
What it does
dei deletes the elements of every region the progression expands to. It is de for each of those regions, and de describes what deletion means.
When James applies it
As de: James folds the deletion into the part’s element mask when it builds the part. dei is legal only in the Part phase.
Rules James adds
- A progression that expands to no region is not an error. James warns and ignores the command (E0107). A progression whose only problem is a lone positive number gets E0101 in place of E0107.
- The rules of
defor an empty region and for a part with no element left apply to each expanded region.
Diagnostics
- E0404: a reduced index lies outside the part.
- E0101: a list holds one positive number, which selects nothing.
- E0103: an interval is written high to low.
- E0107: the progression expands to no region.
Example
The script tests/golden/018-notched-plate/input.tg, which make test runs:
c A notched plate: a 3 by 3 grid of blocks, the top and bottom blocks of
c the middle column deleted by one progression with a union, and the
c outer faces of what remains projected onto a cylinder, so the square
c plate becomes a round one with two rectangular notches cut in from the
c rim.
sd 1 cyli 0 0 0 0 0 1 4
block 1 4 7 10;1 4 7 10;1 3;-3 -1 1 3;-3 -1 1 3;0 1;
dei 2 3;1 2 0 3 4;;
sfi -1 -4;;;sd 1
sfi ;-1 -4;;sd 1
endpart
merge
neutral
write
The block has four partitions in i and in j, so three regions in each. In the progression 2 3;1 2 0 3 4;; the 2 3 in i is the region between reduced indices 2 and 3, the middle column. In j the 1 2 is the region between reduced indices 1 and 2, the 3 4 the region between 3 and 4, and the 0 joins them. The command deletes the bottom and top blocks of the middle column, the regions [2 1 1 3 2 2] and [2 3 1 3 4 2] in the IR. Seven blocks are left, 264 nodes and 126 elements.