st

st sets the tolerance under which the merge joins surface nodes that lie close together, and it prints no report.

Syntax

st tolerance

tolerance is a real number, in the length units of the mesh.

What it does

st records a merge tolerance for surface nodes. At the next write, James merges every pair of surface nodes of the covered parts that lie closer together than the tolerance. Nodes inside a part are never candidates. st prints no report.

When James applies it

When the next write runs, which merges the parts that the write covers. The command itself only records the tolerance, so it takes effect at that write. It is legal in the Control, Part and Merge phases.

Rules James adds

  • The command takes surface nodes only, and both nodes of a pair must be surface nodes. A surface node lies on a face of an element that has no element across it in the same part. That covers the six outer faces of a part and every face that de or dei exposed. Two parts that touch each have the touching face on their own side, so both count.
  • Two nodes merge when the distance between them is less than the tolerance. A distance exactly equal to the tolerance does not merge.
  • The first-defined node survives. That is the node with the lowest number before merging: parts in order, then k, then j, then i, with i changing fastest. James takes the nodes in that order and merges each one into the closest survivor within the tolerance. Of two survivors at the same distance, it takes the one with the lower number. The rule is not transitive. Three nodes in a row, each 0.9 of the tolerance from the next, leave two nodes: the second merges into the first, and the third is too far from the first and stays.
  • A tolerance of zero or below merges nothing. A script uses this to restore a mesh that an earlier tolerance merged.
  • Only the last tolerance command read before a write governs that write. Earlier ones, of any of the four commands, have no effect on it.
  • After a merge the node numbers are dense: the survivors are numbered 1 upward in the order of their old numbers, and the numbers of merged nodes leave no gaps.
  • A node that no element uses never merges, whether James writes it or not.
  • A merge that leaves an element with zero volume does not drop the element. James writes it and warns, part #P has N elements with zero volume after merging, once for each part. The number after part # counts parts from 0, so part #0 is the first part. A wedge, which is a hexahedron with a collapsed edge, keeps its volume and raises nothing.
  • The command prints no report. tp and stp print one.

Diagnostics

  • E1103: the tolerance is missing or is not a number.

Example

The script tests/golden/010-merge-last-row/input.tg, which make test runs:

c Two unit cubes sharing a face. The t of 10 would collapse both cubes into
c one node; the st after it governs alone, so only the shared face merges.
block 1 2;1 2;1 2;0 1;0 1;0 1;
endpart
block 1 2;1 2;1 2;1 2;0 1;0 1;
endpart
merge
t 10
st .001
neutral
write

The two cubes share a face. The t of 10 would collapse both cubes into one node. The st after it governs alone, so only the nodes of the shared face merge. The neutral file holds 12 nodes, which is 16 less the four nodes of the shared face.

See also

  • stp: the same merge, with a report.
  • t: the same merge, for every node.
  • write: runs the merge.
  • Merge and output: how nodes are merged and numbered.

James 0.3.1.

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