Defining Nodal Normals
This discussion applies to conventional shell elements only. The normals of a continuum shell element are defined by the position of the top and bottom nodes along the shell corner edge (see About Shell Elements).
Shell normals can be defined by giving the direction cosines of the normal to the surface at all nodes attached to shell elements. These direction cosines can be entered as the fourth, fifth, and sixth coordinates of each node definition or in a user-specified normal definition, as described below; see Normal Definitions at Nodes for more information. If the user-defined normal differs from the midsurface normal by more than 20°, a warning message is issued to the data (.dat) file. However, if the angle is more than 160°, the direction of the midsurface normal is reversed and no warning message is issued. An additional warning message is issued if the nodal normal deviates more than 10° from the average element normal.
Specifying the same normal at a node for all shell elements attached to the node represents a smooth shell surface at the node. Define a user-specified normal to introduce a fold line.
If the normals are not defined as part of the node definition or by a user-specified normal, Abaqus will calculate the normal using the algorithm given below. Since the only information available for this calculation is the nodal coordinates, it may not define the normal directions accurately. Accurate definition can be important on edges of the model, especially if they are also symmetry planes, or on lines where the curvature of the shell changes discontinuously.
The normal direction at a node is needed for temperature input and nodal stress output. The direction is taken from the definitions below for the elements adjacent to the nodes. If this leads to a conflict at a node, the positive normal direction used at that node will be the one defined by the lowest numbered element at the node.
Calculation of Average Nodal Normals by Abaqus
If the nodal normal is not defined as part of the node definition, element normal directions at the node are calculated for all shell and beam elements for which a user-specified normal is not defined (the “remaining” elements). For shell elements the normal direction is orthogonal to the shell midsurface, as described in About Shell Elements. For beam elements the normal direction is the second cross-section direction, as described in Beam Element Cross-Section Orientation.
The following algorithm is then used to obtain an average normal (or multiple averaged normals) for the remaining elements that need a normal defined:
If a node is connected to more than 30 remaining elements, no averaging occurs and each element is assigned its own normal at the node. The first nodal normal is stored as the normal defined as part of the node definition. Each subsequent normal is stored as a user-specified normal.
If a node is shared by 30 or fewer remaining elements, the normals for all the elements connected to the node are computed. Abaqus takes one of these elements and puts it in a set with all the other elements that have normals within 20° of it. Then:
Each element whose normal is within 20° of the added elements is also added to this set (if it is not yet included).
This process is repeated until the set contains for each element in the set all the other elements whose normals are within 20°.
If all the normals in the final set are within 20° of each other, an average normal is computed for all the elements in the set. If any of the normals in the set are more than 20° out of line from even a single other normal in the set, no averaging occurs for elements in the set and a separate normal is stored for each element.
This process is repeated until all the elements connected to the node have had normals computed for them.
The first nodal normal is stored as the normal defined as part of the node definition. Each subsequently generated nodal normal is stored as a user-specified normal.
This algorithm ensures that the nodal averaging scheme has no element order dependence. A simple example illustrating this process is included below.
Example: Shell Normal Averaging
Consider the three element model in Figure 1. Elements 1, 2, and 3 share a common node, node 10, with no user-specified normal defined.
In the first scenario, suppose that at node 10 the normal for element 2 is within 20° of both elements 1 and 3, but the normals for elements 1 and 3 are not within 20° of each other. In this case, each element is assigned its own normal: one is stored as part of the node definition and two are stored as user-specified normals.
In the second scenario, suppose that at node 10 the normal for element 2 is within 20° of both elements 1 and 3 and the normals for elements 1 and 3 are within 20° of each other. In this case, a single average normal for elements 1, 2, and 3 would be computed and stored as part of the node definition.
In the last scenario, suppose that at node 10 the normal for element 2 is within 20° of element 1 but the normal of element 3 is not within 20° of either element 1 or 2. In this case, an average normal is computed and stored for elements 1, and 2 and the normal for element 3 is stored by itself: one is stored as part of the node definition and the other is stored as a user-specified normal.
Meshing Concerns
In a coarse mesh this algorithm may introduce fold lines where the shell is smooth, or it may create a smooth shell where there should be a fold if the angle of the fold line is less than 20°. Difficulties in large-displacement shell analysis are sometimes caused by false fold lines introduced by coarse meshing. To model a smooth shell, the mesh should be refined enough to create unique nodal normals. To model plates or shells with fold lines, you should define user-specified normals.
Verifying the Normal Definitions
Normal definitions can be checked by examining the
analysis input file processor
output. The direction cosines of the reference normal associated with a node
are listed under the NODE DEFINITIONS
output
in the data (.dat) file. User-specified normals are listed
under the NORMAL DEFINITIONS
output in the
data file.