lin

lin places the interior nodes of an edge, a face or a block in one operation from the boundary of the region you name, ignoring the partitions inside the region.

Syntax

lin imin jmin kmin imax jmax kmax

The six numbers are a region: the smallest and largest reduced index in i, in j and in k. A reduced index is a position in the block lists, not a node number. In a minimum, 0 means the lowest reduced index. In a maximum, 0 means the highest. The concepts chapter explains regions.

A region that is a line (two index pairs equal) is an edge. A region with one pair equal is a face. A region with none equal is a block. A region with all three pairs equal is a vertex, and James refuses it.

What it does

A region that spans several simple edges, faces or blocks is treated as one edge, one face or one block. James takes its outer boundary and ignores the partitions inside it. The interior nodes are then placed from that boundary alone, and the boundary nodes never move.

  • On an edge, the nodes lie on the straight chord between the two end vertices. They are spaced by the rule in force for that edge: equal spacing, or the one set by res, drs, as or das.
  • On a face, James uses the modified bi-linear blend of the four bounding edges.
  • On a block, James uses the tri-linear blend of the six bounding faces.

On a region that is already one simple edge, face or block, lin changes nothing under the default intyp 1, because James applies the same blend there by default. Under intyp 2 the default for a face or a block is transfinite, and lin replaces it with the bi-linear or tri-linear blend, so it does change the nodes. The intyp page describes the setting, and the shaping chapter shows where the default applies.

When James applies it

Step 4 for an edge region, step 7 for a face region and step 14 for a block region, after the vertices, the edge curves and the projections that come before each step. James picks the step from the shape of the region, not from anything else in the command. lin is legal only in the Part phase. James refuses it in the Control and Merge phases (E0412).

Rules James adds

  • A region that reduces to one vertex is an error (E0700). James does not ignore it, because a command whose job is to place interior nodes almost certainly holds a typing mistake there.
  • A lin over several simple regions places their interior partition lines and faces as interior nodes. Any projection those nodes carried is set aside, and a node that a surface constrains is projected onto its surface again afterwards.
  • On a cylinder part, James interpolates the angle as an ordinary number, as you wrote it. Boundary angles of 350 and 10 interpolate through 180. To go the short way, write 370.

Diagnostics

  • E0700: the region is a single vertex.
  • E0102: a reduced index lies outside the part.
  • E0106: a range of the region is written high to low.

Example

The script tests/corpus/178-lin-face-region/input.tg, which make test runs:

c lin over a face region whose centre vertex pb lifted
block 1 3 5;1 3 5;1 2;0 1 2;0 1 2;0 1;
pb 2 2 1 2 2 1 z 0.4
lin 1 1 1 3 3 1
endpart

The part has 2 by 2 blocks in i and j, one layer thick. pb lifts the centre vertex of the face at k = 1 to z = 0.4. The region 1 1 1 3 3 1 is that whole face, so James stores the lin for step 7 (the IR holds op lin with steps [7]). The centre vertex is an interior vertex of the region, so lin recomputes it from the outer boundary. With lin the centre node returns to z = 0. So do the four nodes beside it, which sat at z = 0.2, and the four diagonal nodes, which sat at z = 0.1. Without lin they stay lifted.

See also

  • lini: the same command with an index progression.
  • tf: the transfinite alternative, which keeps the spacing of the boundary.
  • intyp: chooses the default interpolation.
  • Shaping a part: the order of steps and the defaults.

James 0.3.1.

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