# Presentation: 580415

## CUBIT Advanced Users Tutorial

- Mesh Detail Control

## Mesh Detail Control is:

- The sizing and placement of mesh for:
- quality of elements
- capture of desired features
- control of element count
- success of meshing

## Sizing of Mesh

- Interval assignment
- Sizing functions
- Changing of sizes
- Mesh--don’t like--remesh
- Coarsening
- Refinement

## Placement of Mesh

- Biasing
- curve
- propagate bias
- surface
- Curve equal constraints
- Thin (laminate-type) surfaces

## Playing with curves

- Interval Assignment
- Biasing
- Propagate bias
- Pinpoint node placement
- Curve equal constraints
- Skew Control
- Copying

## Interval Assignment

- Intervals really only have an effect on curves, so setting intervals on higher-order entities sets all lower-order too.
- Generally set interval size for volume, then change individual curves for desired results.
- Can set either interval size or number of intervals
**surface <surface_id_range> interval <number_intervals>**
**surface <surface_id_range> [interval] size <size>**

## Interval Firmness

- Intervals can be hard, soft, or default
- Default or Soft--Cubit can change them
- Hard--Cubit must respect them
- Intervals are soft if:
- If user sets a size,
- If setting comes from higher-order entity, or
- If user specifies soft
- Intervals are hard if:
- If user sets an interval, or
- If user specifies hard.

## Relative Interval Counts(Curve equal constraints)

- The interval count on one curve can be set relative to the interval count on another curve
- Equal, Not Equal, <=, or >=
**Curve <ids> Interval {equal_to |**** greater_than_equal | less_than_equal} **** curve <id>**
**Curve <ids> Interval {Same | Different}**
- Example -** curve 5 interval equal_to curve 2**
- An interval count different by a specific amount
**Curve <ids> Interval equal_to extra <count>**
- Example: 3 fewer mesh edges on curve 5 than on curve 2: **Curve 5 interval equal_to curve 2 extra -3**

## Curve equal constraints (cont)

- 5                        15

- 10                        10

- 10                        10

- 10                        10

- Without curve equals
- constraints

- With curve equals
- constraints

## Pinpoint node placement

- When you absolutely have to have a node in a precise location
**curve <id_range> scheme pinpoint location <list of doubles>**

- Curve with pinpointed nodes

## Curve mesh copying

- To enforce propagation of irregular curve meshes (such as a pinpoint scheme)
**curve <id_range> scheme copy source curve <id_range>****[[source node <start_node_id> <end_node_id>]**** [source percent [<percentage>|auto]]**** [source [combine|SEPARATE]] **** [target [combine|SEPARATE]]**** [source vertex <id_range>]**** [target vertex <id_range>]]**

- Curve mesh copied from bottom curve

## Playing with surfaces

- Sizing functions
- Biasing
- Thin (laminate) surfaces
- Copying

## Paver Sizing Functions

- Constant

- None

- Linear

- Interval

- Inverse

**surface <id_range> sizing function type **** {constant | linear | interval | ****  inverse | exodus | others}**

## Bias sizing function

- Bias triadvance and pave surfaces
- define sizes on “start curves” first
**Surface <surface_id_range> Sizing Function Type Bias Start Curve <id_range> {Finish Curve <id_range>| Factor <val>}**
- factors in [1/1.3, 1.3] are pretty safe
- or define sizes on finish curves
- biases bounding curves as well
- can make a chain across several surfaces
- parameterized meshing

## Bias Sizing Function

- Demo - bias_sizing_function.jou

## Bias Sizing Function

- Demo- bias_sizing_function.jou

- import acis "bias_sizing_function.sat"
- merge all
- surface 5 14 9 scheme pave
- surface all except 5 14 9 visibility off
- curve 17 size .01
- surface 9 sizing function type bias start curve 17 factor {1/1.2}
- comment 'size goes to zero - change factor, or size, or both'
- curve 17 size .03
- surface 9 sizing function type bias start curve 17 factor {1/1.07}
- mesh surface 9
- surface 14 sizing function type bias start curve 17 factor 1.3
- surface 5 sizing function type bias start curve 4 factor 1.3
- mesh surface 5 14

## Thin (laminate) surfaces

- Laminate surface meshing scheme
- Allows for predictive control of skew for long, thin, curved sections
**surface <id_range> scheme laminate**

- Original model

- Mapped mesh

- Laminate mesh

## Surface mesh copying

- Connectivity-based copy of mesh from one topologically similar surface to another
- Must have same number of loops (holes)
- May vary in just about every other aspect, although quality problems may occur

## Surface mesh copying

- Must tell Cubit how to orient mesh on target surface
- Command line can be complicated
**Surface <surface_id_range> Scheme Copy [Source Surface <id>]**
**[Source Node <id> Target Node <id>**
**Source Edge <id> Target Edge <id>**
**Source Vertex <id> Target Vertex <id>**
**Source Curve <id> Target Curve <id>] [Nosmoothing]**

## Surface mesh copying example

- Demo- surface_mesh_copy.jou

## Surface mesh copying example

- Demo- surface_mesh_copy.jou

- import acis "surface_mesh_copy.sat"
- volume 1 size 1
- surface 6 scheme pave
- mesh surface 6
- copy mesh surface 6 onto surface 17 source vertex 11 	target vertex 29

## Playing with volumes

- Once we’ve set curves and surfaces, there’s not much else we need to do with volumes, except pick a scheme
- Mesh copying

## Volume mesh copying

- Connectivity-based copy of mesh from one topologically identical volume to another
- Note the “identical” above--same number curves, vertices, and surfaces, connected in the same way
- May vary in geometric shape

## Volume mesh copying

- Demo- volume_mesh_copy.jou

- Ask yourself, “How did he do that?”

## Volume mesh copying

- Demo- volume_mesh_copy.jou

- import acis ”volume_mesh_copy.sat"
- composite create surface 7 8 10
- composite create surface 18 19 20 15
- composite create surface 12 11 13 14
- composite create curve 46 45 44 40
- composite create curve 38 43 42 41
- composite create curve 30 35 37 29
- composite create curve 32 34 36 27
- composite create curve 16 19 25
- composite create curve 26 17 14
- surface 5 scheme pave
- volume 1 size 1
- volume 1 scheme sweep
- mesh volume 1
- copy mesh volume 1 onto volume 2

## Other Stuff

- Failure of interval assignment
- Remeshing

## Interval assignment failure

- So, what happens when you’ve been playing around with all these things, and Cubit gives you the error:
- ERROR: Matching intervals <<< UNSUCCESSFUL >>>
- ERROR: Interval assignment unsuccessful.
- ERROR: Skipping meshing, since matching intervals failed.
- Hint: You may want to try the "Mesh <entities> Individual" option.
- Obviously, something has happened that prohibits meshing success

## Interval assignment failure

- Some possible solutions
- “Match intervals assign groups infeasible”, then draw groups
- int_hardsets
- int_free
- int_constraints
- This will show which curves have been set that Cubit can and cannot change.

## Interval assignment failure

- Could also do “label curve interval”.
- Labels curves with id and # of intervals, then check all linking curves for incompatibilities.
- All else fails--curve all interval soft and try to match intervals again.

## Remeshing

- So, you have a mesh, but don’t like it
- Things to remember
- Delete mesh [propagate]
- Propagate deletes mesh on sub-entities too
- Set intervals again on affected curves, surfaces or volumes
- Usually best to set all the curves again
- Reset volume <id> resets meshing parameters (interval, scheme) on the volume: