What is more important - knowing how to build a model or understanding what the model is showing?
I would argue the latter matters more. A user can build a model incorrectly, but if they recognize that the results look wrong, there is always an opportunity to improve and correct the setup. The real danger arises when the model is flawed and the results are mistakenly perceived as correct. To avoid such misleading conclusions, it is crucial to interpret results carefully and, when necessary, use appropriate local coordinate systems to view the behavior in the right frame of reference.
In this post, we’ll explore why different coordinate systems are necessary, how to define them in Abaqus/CAE, and how to effectively transform your results (including the trick to removing rigid body motion).
The default global Cartesian system is great for many things, but it isn't always the best way to view your data. Sometimes, the results might look "wrong" simply because they are being displayed in the global system rather than a local one suited to the geometry.
For example, imagine a long 3D pipe with internal pressure loading. If we look onto 2D cross-section of that pipe, you expect to see compressive stress on the inner face and tensile stress on the outer face. However, if you plot the standard Stress-X S11 component, you will see a confusing mix of tension and compression depending on where you are around the circumference. By switching to a cylindrical coordinate system, you can plot the radial stress component, which will correctly show the pressure distribution regardless of the element’s position around the circle.
2D Plain strain model of a pipe with pressure distribution (left), S11 stresses in global cartesian coordinate system (middle) and S11 stresses in global cylindrical coordinate system
The displacements can be confusing as well. We often refer to displacements as a way to measure deformations, but these are two separate quantities.
Deformations show how the body changes its shape, and displacements show it as well, but they also include the rigid body motion. In other words, they also measure the motion of the body itself through space, which can be deceiving. Deflections show a change in the body geometry, while engineers often care most about relative behavior rather than absolute position.
For example, imagine you are simulating a satellite deployment. If the entire object moves through space, the raw displacement results will be dominated by that movement, masking the small deformations you actually want to analyze. By attaching a local coordinate system to the center of mass, you can filter out the rigid body motion and isolate the structural deformation.
Now that we know why we need a custom, local coordinate system, I can explain how to create one in an Abaqus/CAE session.
The steps are fairly simple. In an Abaqus/CAE session, you should go to the Visualization module, Main Menu → Tools → Coordinate System → Create. Abaqus offers three primary types:
Cartesian - measures position in orthogonal X, Y, Z directions.
Cylindrical - defines position using a radial distance R, a tangential angle θ and an axial height Z.
Spherical - measures position using a radial distance R, a circumferential angle θ and a meridional/polar angle φ.
The Cartesian system is easy to understand intuitively. Every point in that coordinate system is defined by its distance in length units (meters, millimeters, inches, etc.) with respect to the origin of that coordinate system.
The next one, the cylindrical system, is a bit more complicated as it mixes both directions and units. It is very often used to measure circular shapes, as it can be useful to capture both radial expansion/contraction in length units as well as to capture rotations around the origin point in angle units.
Finally, the spherical coordinate system is a step further from the cylindrical type, as it allows measurement of radial displacement as well as circumferential and polar angles. This sort of coordinate system can be useful for ball joints or domes where stress distributions are uniform radially but vary angularly.
If that wasn't enough, another distinction we can make for coordinate systems is to define their movement in space. While fixed systems stay put in space, movable coordinate systems can be defined by selecting three specific nodes on your model. As the body deforms and moves through space, the coordinate system moves with it. This dynamic tracking is the key to removing rigid body motion, which we discussed in the final section.
Abaqus/CAE GUI to create a new coordinate system
Once you have created a coordinate system, you need to tell Abaqus to use it. You can do this by navigating to Main Menu → Result → Options → Transformation.
Result transformation GUI
Once you open it, you will see several options to choose. Let's explain them one by one.
The Transform type Default indicates that analysis results are visualized with respect to the default output reference coordinate system, which is differently defined for node- and element-based results. For node-based results, the reference result coordinate system is always the global coordinate system. For element results, the individual material coordinate system is used as the reference system at each integration point.
The Transform type nodal is useful when a local coordinate system (Cartesian, cylindrical, or spherical) is specified when the model is created and is further used in load/boundary condition definition. A typical situation might be when one needs to specify local support that is not aligned with any of the global coordinate system axes.
The User-specified coordinate system is the type of coordinate system that users use the most often. It converts data from the global CSYS into a local CSYS specified at the Visualization module.
This transformation works in a very particular manner that is often not well understood. For example, when a user creates a cylindrical coordinate system, this transform is still able to convert the stress tensor with no issues, but what will be the unit of the stress value in the theta direction—pressure unit or angle unit?
The answer is—it will be in pressure units. It is because the transformation is not really performed using a cylindrical coordinate system, but instead a set of Cartesian coordinate systems located at integration points is rotated to achieve the same outcome as if it was a cylindrical coordinate system. Analogously, nodal values like displacement vectors get transformed by rotating a set of Cartesian coordinate systems at the nodal position.
When we understand how user-specified transformation works, it is much easier to explain what the angular transformation is. It is the type of transformation that can use the cylindrical coordinate system as an input, but which actually generates the output in cylindrical CSYS units. In such a scenario, the radial direction will be in length units (for example, in mm), but the circumferential rotation will be presented in angles (typically in radians).
Using such units for stress tensor values would make the results non-intuitive, and hence, this type of transformation is only available to capture the displacement field only.
Rotating cylindrical example transformed using cylindrical CSYS via User-Specified option (left) and an Angular option (right)
Finally, the last type of transformation, the layup-orientation, is designed specifically for composites. Since every ply in a composite laminate might have a different fiber orientation, this option transforms stress/strain results into the orientation of the current ply being queried, ensuring you are reading fiber and matrix stresses correctly.
Very often, large assembly rotations or translations can make it impossible to see how a part is actually deforming. This is because a displacement field very rarely equals the deformation field.
Fortunately, Abaqus provides a neat way to remove rigid body motions from the results. This can be done by first defining a movable coordinate system (which is explained earlier in the post) and using specific options under the User-Specified transform type.
Primary variable and Deformed variable options
When using the 'Primary variable,' the deformed configuration of a model is internally transformed into a fictive non-visible configuration which compensates for the current translational and rotational movement of the user-specified coordinate system. From this fictive configuration, the primary nodal vector field results are then derived.
When 'Deformed variable' is used in addition to the 'Primary variable' option, not only will the rigid body motion be removed entirely, but the transform will keep the custom CSYS fixed and it will recalculate the deformations with regard to that fixed point.
The example of a simple clamped bar will be used to demonstrate how the tools are working. The model is set up in the following way:
Step 1 - the interference fit is resolved to clamp the bar in the holes
Step 2 - surface traction is applied in the middle of the bar to bend the bar slightly
Step 3 - the entire assembly is rotated, which generates rigid body motion, but which should not affect the deformation state
Model results from the first 2 steps
For this study, a local cylindrical coordinate system is applied in the middle of the bar. This will be the center of rotation for the specified study.
Once the User-Specified transform is applied, the results look like in the video below. It can be seen that once the assembly starts rotating, the displacement field gets recalculated, which indicates the transform isn't removing rigid body motions.
Results from the user-specified cylindrical CSYS transformation
The following outcome is achieved when the 'Primary variable' is turned on under the User-Specified option. While the entire body rotates, the displacement condition is kept constant, indicating that the displacement field equals deformations transformed into a cylindrical CSYS.
Results from the user-specified cylindrical CSYS transformation with Primary Variable activated
Once the 'Deformed Variable' is activated, it can be seen that the rigid body motion is entirely removed from the results. Additionally, this option transforms the results so that the specified point for the CSYS is fixed in space while the body deformations are recalculated with regard to that fixed CSYS.
Results from the user-specified cylindrical CSYS transformation with both Primary Variable and Deformed Variable settings activated
Sometimes, we may also want the rigid body motions to be included while the camera is focused on a specific part of the model. The camera will effectively "mount" itself to the part. The part will appear stationary in the viewport, but the background grid will move. This is great for making animations, but it affects the rendering—the numerical results (displacements) in the legend will still include the large rigid body values unless you also apply the transformation method above.
This option can be specified under Main Menu → View → View Options → Movie Camera and set the camera to follow a specific Coordinate System or Node.
Stack-Ball experiment modelled with the custom camera setting
In this post I explained what are the different tools available in Abaqus, that let you inspect the results and analyse them in the right coordinate system. Understanding how the coordinate systems work makes the postprocessing more accurate and it also gives the user better intuition of what the model behaviour indicates.