|
This appendix describes commands for
producing good-quality meshes of models that tile space, such as
polycrystalline materials models. Such models are often refered to as
"periodic", but since that term already has a different meaning in
Cubit, the keyword "tile" is used instead. Meshes may be smoothed
across periodic boundaries. Periodic boundary conditions can be
automatically set up, according to ALEGRA conventions (SAND99-2698).
Tile commands are alpha features and should be used with caution.
Initial
setup
First import the
model and merge the surfaces. Then mesh it with any method
that will create meshes that match across the tile (periodic) boundary,
say with scheme polyhedron
or sweep. Once
the mesh is created, specify the "tile vectors", which lets Cubit know
that the nodes across the periodic boundaries are actually the same
node:
Tile {x <period> | y <period> | z <period>}
[x <period>] [y <period>] [z <period>]
The 'period' you
specify is actually the vector offset from one boundary to its match.
Specify one tile command for each coordinate axis that the model is
periodic in.
E.g.
Tile x 1
Tile y 1
Tile z 1
You can see which
nodes are matched to a given node by some combination of tile vectors
with the following command:
Tile Debug Node <id>
If you later need
to delete these tile vectors, use the following command:
Tile Off
Once the tile vectors are specified, you can set up
periodic boundary conditions
that meet ALEGRA specifications. The command is:
Tile Nodeset <start_id>
This will create a nodeset for all combinations of
tile vectors that actually connect
nodes. The nodesets created will be reported to you. The nodesets will
be consecutive
starting with the given 'start_id', except that if there are no nodes
for a particular
combination there will be no nodeset and the id space will have a hole.
To delete these nodesets, use the
Tile Off
command rather than the usual commands to delete
nodesets.
Smoothing
Once a mesh has been created
and the tile vectors have been specified, you can smooth
the mesh and keep the periodic boundaries exactly offset by the tile
vectors.
Only hex meshes are currently supported.
A variety of 3d smoothing
schemes are supported, including laplac, equipotential, untangle,
and condition number.
Smooth Volume <volume_id_range> [Global [Float
<dim>] ]
Use "Global" if you are
smoothing a collection of volumes. Use "float 3" if you want nodes on
surfaces, curves, and vertices
to be able to move off of their geometric owner. Use "float 2" if you
want just nodes on curves and vertices to be able to move off
of their owner (but stay on an owning surface).
It is often useful to specify
that some of the nodes are fixed using the "node position fixed"
command.
Example
# make
the geometry
#{brick_size=500}
brick wid {brick_size}
brick wid {brick_size}
body 2 move {brick_size} 0 0
brick wid {brick_size}
body 3 move {brick_size} {brick_size} 0
brick wid {brick_size}
body 4 move 0 {brick_size} 0
brick wid {brick_size}
body 5 move 0 0 {brick_size}
brick wid {brick_size}
body 6 move {brick_size} 0 {brick_size}
brick wid {brick_size}
body 7 move {brick_size} {brick_size} {brick_size}
brick wid {brick_size}
body 8 move 0 {brick_size} {brick_size}
merge all
# mesh
it
vol all int 3
mesh vol all
# set
the tiling vectors
tile x {brick_size*2}
tile y {brick_size*2}
tile z {brick_size*2}
tile debug node 256
tile debug node 245
# set
the tiling nodesets
tile nodeset
# mess
up the mesh quality
# volume all smooth scheme randomize
# smooth volume all
surface all smooth scheme randomize
smooth surface all
draw hex all
# fix
the mesh quality
node in volume all position fixed
node in surface all position free
volume all smooth scheme laplac
# volume all smooth scheme untangle beta 0.08
smooth volume all global float 3
draw hex all
|