*secondorderfix2

Advanced fixing of middle nodes for 2nd order elements.

Syntax

*secondorderfix2 mark_id min_jacobian max_midangle min_midratio jacobian_method fix_method

Type

HyperMesh Tcl Modify

Description

Fixes the middle nodes of second order elements, using parameters to define how the nodes can be moved.

Inputs

mark_id
ID of the mark containing the elements to fix. Valid values are 1 and 2.
min_jacobian
The element Jacobian threshold of the fixed result.
max_midangle
The maximum angle of the curved edge to the straight edge.
min_midratio
The minimum ratio of the two parts of the edge separated by the middle node.
jacobian_method
The evaluation method of the Jacobian. Valid values are:
  • 0 – Evaluate at integration points
  • 1 – Evaluate at corner points
  • 2 - Evaluate at corner and mid points
  • 3 - Evaluate at high order integration points
fix_method
The method used to fix the node.
  • 0 – Just straighten surface edge, internal middle nodes are not moved.
  • 1 – Move internal nodes only, boundary middle nodes are not moved.
  • 2 – Move all nodes (both internal and surface), the boundary nodes should be moved along the geometry.
  • 3 – Move internal nodes and straighten surface nodes, the boundary nodes can be moved off the geometry.

Any other value – Move all nodes and straighten surface nodes. For the boundary nodes, first try to move along geometry. If not able to reach the target, then try to move off the geometry.

Example

Fix the middle nodes of elements 2 and 4. The target Jacobian at the elements’ corner points should be not less than 0.1, the angle of the fixed edge to the straight edge which is constructed by the two end nodes should be less than 30 degrees, and the ratio of the two parts of the edge separated by the middle node should be greater than 0.8. Both the internal nodes and boundary nodes can be moved, and the boundary nodes can be kept on the geometry:

*createmark elements 1 2 4
*secondorderfix2 1 0.1 30 0.8 1 2

Errors

Incorrect usage results in a Tcl error. To detect errors, you can use the catch command:
if { [ catch {command_name...} ] } {
   # Handle error
}

Version History

10.0