Files
2025-12-17 11:00:57 +08:00

129 lines
6.3 KiB
Plaintext
Executable File

.. _smooth :
&nbsp_place_holder;
> **_SMOOTH_**
The **smooth** command smooths 2D or 3D mesh objects. For adaptive smoothing
see the **[radapt](RADAPT.html)** command. **smooth **takes a 2D or 3D mesh
object and moves nodes, without changing the connectivity of the grid, in
order to improve the aspect ratios and distribution of elements in the mesh.
An optional control value between zero and one for options **esug**, **mega**,
**geometry**, **elliptical** and **random** affects the amount of node
movement. The default (control =0.) results in the standard smoothing scheme.
Increasing control towards 1. causes the scheme to be progressively more
controlled (moving the mesh less), until at control =1., there is no mesh
movement whatsoever.
By default, the second argument is **position**. This results in the positions
of the nodes being changed. (Other options will be added in the future for
implementation of smoothing using node velocities.)
There are nine smoothing algorithms available. **esug**, **elliptic** and
**random**&nbsp_place_holder; are for 2D grids, **laplace**, **aspect** and
**lpfilte**r&nbsp_place_holder; for 2D or 3D grids, **mega, network** and
**geometry **are for 3D grids:
1. **esug** --- Elliptic Smoothing for Unstructured Grids. This is the default
for 2D mesh objects. It can only be used on triangular 2D mesh objects. (Ref.:
Ahmed Khamayseh and Andrew Kuprat, "[Anisotropic Smoothing and Solution
Adaption for Unstructured Grids](../../pdfs/ahmandrew1.pdf)", Int. J. Num.
Meth. Eng., Vol. 39, pp. 3163-3174 (1996).)
2.**elliptic** --- Similar to esug but the 'guards' which prevent a grid from
folding are turned off. (Thus esug is preferred.)
3. **random **-- a node's position is set to a randomly weighted average
position of its neighbors. 'Guards' keep the elements from inverting.
4. **laplace** ---On a 3D tetahedral mesh moves a node to the average position
of its neighbors where neighbor is defined as the set of nodes connected to
the candidate node by an edge where the node types (itp1) and node constraints
(icr1) are a 'subset' of the candidate node type and
constraints.&nbsp_place_holder; A node will not be moved if the result is an
inverted element. The following controls may be supplied:
&nbsp_place_holder;
> rlxwt default(0.5)
> weight for underrelaxed Laplacian smothing
> ntimes default(5)
> number of smoothing iterations
> nwttry default(3)
> number of attempts to not tangle the mesh by halving the smoothing weight.
> useisn default(1)
> 1 means interface nodes are smoothed based alonga multimaterial edge with
all the same materials as the candidate node. 0 means interface nodes are
smoothed based on all interface neighbors
> extrnbr default(**inclusive**)
> **inclusive** means do not restrict neighbors&nbsp_place_holder;
**exclusive** means restrict neighbors to nodes in pset&nbsp_place_holder;
&nbsp_place_holder;5.** aspect**---Adjusts node positions such that the aspect
ratio of the elements is improved.&nbsp_place_holder; The default damage
tolerance for** smooth//****aspect** is infinity, so it can be used as a
general smooth which has the effect of improving worst aspect ratio. 6.
**lpfilter**---This smooths surface networks by a low-pass filtering of the
coordinate data.
(filtdeg default = 30, k_pb default = 0.1) &nbsp_place_holder;7**. mega ---**
Minimum Error Gradient Adaption. This option creates a smoothed grid which is
adapted to the standard function with constant Hessian f(x,y,z)=x2+y2+z2. Can
be used on hybrid 3D meshes and guards against mesh folding. Adaption to this
function creates a uniform isotropic mesh.&nbsp_place_holder; The code
variable **maxiter_sm** (default=25) controls the maximum number of **mega**
iterations.&nbsp_place_holder; The value of **maxiter_sm** may be changed
using the **[assign](ASSIGN.html)** command
(**assign**///**maxiter_sm**/10).&nbsp_place_holder; (Ref.: Randolph E. Bank
and R. Kent Smith, "Mesh Smoothing Using A Posteriori Error Estimates", SIAM
J. Num. Anal. tol. 34, Issue 3, pp. 979-997 (1997).)
8. **geometry **--- Geometry ("plump element") adaption. Default for 3D. Can
be used on hybrid 3D meshes It uses the **mega** algorithm but retains only
the leading geometry term; the term containing the Hessian has been dropped.
This algorithm guards against mesh folding.
9. **network** --- This option smooths the surface network of a 3D tetrahedral
grid.&nbsp_place_holder; Volume nodes are not moved.&nbsp_place_holder; The
material volumes are conserved.&nbsp_place_holder; By default a check is
performed to verify that no elements are inverted; the user may turn this
check off with the **nocheck** option.&nbsp_place_holder; This option will not
work correctly (will not conserve volume) on grids which have two areas of a
material connected at a single node or edge; each material region must have
face connectivity.&nbsp_place_holder; The number of iterations is controlled
by the niter argument (default is 10) and the weight argument controls the
amount of movement (from 0. to 1. default is 1.).&nbsp_place_holder; Combining
this type of smooth with volume smoothing will help to avoid element
inversions. FORMAT: **smooth**/**position**/**esug**|**mega**|**geometry**|**e
lliptic|**|**random**/ [ifirst,ilast,istride ]/[control]
**smooth**/**position**/**lpfilter/**/ [ifirst,ilast,istride] /[filtdeg]/[k_pb]/**network** **network** smoothing applies to a network of curves in 2D or 3D, or to a network of surfaces in 3D.&nbsp_place_holder; The materiality of the cells (if any) is ignored. **smooth**/**position**/**aspect**//[ifirst,ilast,istride/toldamage]
**smooth**/**position/laplace/**[ifisrt,ilast,istride]/[rlxwt]/[ntimes]/[nwtty]/[useisn]/[extrnbr]
**smooth**/**position/network/**[ifisrt,ilast,istride]/[niter]/[weight]/[**check**|**nocheck**} EXAMPLES:
&nbsp_place_holder; 1. Smooth all nodes in the mesh using **esug** in 2D or
**geometry** in 3D.
**smooth**
2. Smooth all nodes in the mesh, using controlled smoothing with control =0.5
**smooth** / / / 1,0,0 / 0.5
3. Smooth a 3D grid by combining network and volume smooths.
**pset**/p2/**attribute**/itp1/1,0,0/0/**eq**
**smooth**/**position**/**network**/1,0,0/3/1./**check**
**smooth/position/geometry/pset,get,**p2
**smooth**/**position**/**network**/1,0,0/3/1./**check**
**smooth/position/geometry/pset,get,**p2