*optimsmooth
Applies the quality index optimization smoothing algorithm to a mark of plate elements.
Syntax
*optimsmooth smoothmark anchormark criteria_filename feature_angle target_QI max_iterations time_limit
Type
HyperMesh Tcl Modify
Description
One or more nodes may be specified as being anchored in place and not movable. The command optimizes nodes location to reach the specified target Q.I. of the selected elements aggregate according to a given quality criteria. It moves nodes through the surface boundaries unless the boundaries are strong feature lines or component boundaries. The optimization process may be interrupted if the target Q.I. has been reached or a time limit is specified. The optimization may be applied recurrently with a given maximum number of iterations.
Inputs
- smoothmark
- The mark of elements to be smoothed. Does not need to be a contiguous block.
- anchormark
- The mark of nodes on elements that are not adjustable.
- criteria_filename
- The path of the file containing quality criteria or dummy for criteria pre-set with *reset_qa_calculator().
- feature_angle
- The angle in degrees specifying the feature lines (18-90 degrees). This is approximately the minimal angle between the elements adjacent to a feature line.
- target_QI
- The target Q.I. for optimization.
- max_iterations
- The maximum number of recursive applications of the optimization procedure.
- time_limit
- Time limit in minutes for the optimization.
Example
To smooth elements 100 through 110 with fixed nodes 15, 17, and 14 using the quality criteria file, c:/mycriteria/durability.txt, the feature angle = 30 degrees, the target Q.I = 0.2, recursive optimization with maximum five iterations and with no time limit applied:
*createmark(elements,1)100 101 102 103 104 105 106 107 108 109 110
*createmark(nodes,2) 15 17 14
*optimsmooth(1,2,c:/mycriteria/durability.txt,30,0.2,5,0)
To smooth all plate elements with fixed nodes 257 and 678 using the quality criteria specified in the example for *reset_qa_calculator() with the feature angle = 40 degrees, target Q.I. = 0.3, no recursive optimization, time limit 60 minutes:
*createdoublearray(89) 1 1 15 13.5 6 3 1.5 1 1 15 18 22.5 30 45 1 1 1 2 4.4 5 10 1 1 0 5 8 10 90 1 1 90 110 125 135 180 1 1 90 70 55 45 0 1 1 60 80 100 120 180 1 1 60 50 30 20 0 1 1 0 10 35 45 90 1 1 1 0.9 0.75 0.7 0 1 0 0 0.3 0.8 1 2 1 1 2 6 8 10 15 0 0 0.8 1 10
*reset_qa_calculator(1,89)
*createmark(elements,1) "all"
*createmark(nodes,1) 257 678
*optimsmooth(1,1,dummy,40,0.3,1,60)
Both *createmark() commands are required when using this command (see example).
Current element quality criteria for optimization can also be set directly using *reset_qa_calculator_from_file() or reset_qa_calculator() at least once before using the command. In such cases, dummy should be given as a criteria_filename argument. The command may then be applied any time without resetting the current quality criteria.
Using a true file name in the command also results in the resetting of current quality criteria for optimization and for the Quality Index panel. The criteria file must be created using the Quality Index panel.
Errors
None.