Trelis 16.4 User Documentation

Each meshing scheme in Trelis imposes a set of constraints on the intervals assigned to the curves bounding the entity being meshed. For example, meshing any surface with quadrilaterals requires that the surface be bounded by an even number of mesh edges. This constrains the intervals on the bounding curves to sum to an even number. For a collection of connected surfaces and volumes, these interval constraints must be resolved globally to ensure that each surface will be meshable with the assigned scheme. The global solution technique implemented in Trelis is referred to as interval matching.

When meshing a surface or volume, matching intervals is performed automatically. In some cases, interval matching needs to be invoked manually, for example when meshing a collection of volumes, or a collection of surfaces not in a common volume. Interval matching can also be called to check whether the assigned intervals and schemes are compatible.

The command syntax for manually matching intervals is the following:

Match Intervals {Surface|Volume|Body|Group} <range>

Here the entity list can be any mixed collection of groups, bodies, volumes, surfaces and curves.

The interval matcher assigns intervals as close as possible to the user-specified intervals, while satisfying global interval constraints. The goal is to minimize the relative change in pre-assigned intervals on all entities. Interval matching only changes curves with interval firmness of soft or default .

Extra constraints can be added by the user to improve mesh quality locally; in particular, curves can be constrained to have the same intervals using the command

Curve <range> Interval {Same|Different}

Specifying that curves have the "same" intervals stores them in a set. More curves may be added to an existing set, and sets merged, by future commands. The current contents of the affected sets are printed after each command. A curve may be removed from a set by specifying that its intervals are "different."

The interval assignment algorithm tries to find one good interval solution from among the possibly infinite set of solutions. However, if many curves are hard-set or already meshed, there may be no solution. To improve the chances of finding a solution, it is suggested that curves are soft-set whenever possible. Also, a solution might not exist due to the way the local selections of corners and sides of mapped surfaces interact globally. If there is no solution, the following command may help in determining the cause:

Match Intervals {Surface|Volume|Body|Group} <range> [Seed Curve <range>] [Assign Groups [Only|Infeasible]] [Map|Pave]

Specifying **Assign Groups** will create groups that contain
independent subproblems of the global problem. Specifying **Assign
Groups Only** will group independent subproblems, but the algorithm
will not attempt to solve these subproblems. **Assign Groups Infeasible**
will put each independent subproblem with no solution into specially named
groups. Often poor corner choices and surface meshing schemes will be
illuminated this way. If **Map** or **Pave**
is specified, then only subproblems involving mapping or paving constraints
will be considered. If a **Seed Curve** is specified, then
only those subproblems containing that curve will be considered.

Advanced users may also wish to experiment with setting the following, which may change the interval solution slightly:

Set Match Intervals Rounding {on|off}

Set Match Intervals Fast {on|off}

Set Match Intervals Delta <interval_difference = 0.>

If **set match intervals rounding** is set to **on**,
the intervals will be rounded to the nearest integer. If the setting is
**off**, the intervals will be rounded toward the user specified
intervals.

If **set match intervals fast** is set to **off**
a single curve will be fixed per iteration. Note in rare cases this may
produce better meshes. If set match intervals fast is set to **on**
multiple curves will be fixed per iteration.

**Set match intervals delta**
allows the number of intervals assigned to a curve to be delta intervals
away from optimal unexpectedly. A larger value makes matching intervals
faster, but the quality of the solution may be worse; Hint: try delta
= 1.0. Default is 0.0.

The user can also constrain the parity of intervals on curves:

{Curve|Surface|Volume} <range> Interval {Even | Odd}

If **Even** is specified, then during subsequent interval
setting commands and during interval assignment, curves are forced to
have an even number of intervals. If the current number of intervals is
odd, then it is increased by one to be even. If **Odd** is
specified then intervals may be either even or odd. Setting intervals
to even is useful in problems where adjoining faces are paved one by one
without global interval assignment.

Rather than specifying a specific size or interval for a curve or surface, which may overconstrain the interval matcher, you can specify an upper and lower bound that is acceptable. This would typically be used in a complex assembly where there may be multiple intervals that may interact in order to get a compatible mapped/swept mesh through the assembly.

Surface <surface_id_range> {Interval|Size|Periodic Interval} {Lower|Upper} Bound {On|Off|<bound>}