This article with step-by-step instructions and accompanying files with descriptions (CAE file, python scripts and user element subroutine - provided below) is meant to help Abaqus users new to mesh-to-mesh solution mapping get started. The attached CAE file has an axisymmetric model of a pipe with threads (teeth) on the outer surface inside another pipe. This example model simulates the indentation of the inner surface of the outer pipe by the threads (teeth) on the outer surface of the inner pipe. The mesh-to-mesh solution mapping capability in Abaqus allows this simulation involving extreme deformation due to indentation to successfully run to completion. This model can be modified by users to meet their specific model requirement.
IMAGES: Sharp indentation of inner surface of outer pipe by threads (teeth) on outer surface of inner pipe (normal and sweep views)
VIDEOS: Sharp indentation of inner surface of outer pipe by threads (teeth) on outer surface of inner pipe (normal and sweep views)
PART A: BRIEF OVERVIEW OF ADAPTIVITY TECHNIQUES AVAILABLE IN ABAQUS
The finite element discretization that results from suboptimal meshing of models can limit your ability to obtain adequate analysis results at a reasonable CPU cost. Three adaptivity techniques are available in Abaqus that help you optimize a mesh and, therefore, obtain quality solutions while controlling the cost of your analysis. They described below:
1. Arbitrary Lagrangian-Eulerian (ALE) adaptive meshing:
Arbitrary Lagrangian-Eulerian (ALE) adaptive meshing provides control of mesh distortion. ALE adaptive meshing uses a single mesh definition that is gradually smoothed within analysis steps. ALE adaptive meshing requires only one analysis job.
2. Adaptive remeshing (varying topology adaptivity):
Adaptive remeshing is typically used for accuracy control, although it can also be used for distortion control in some situations. The adaptive remeshing process involves the iterative generation of multiple dissimilar meshes to determine a single, optimized mesh. Once the adaptive remeshing process is complete, a single mesh and a single analysis job represent your entire analysis history.
3. Mesh-to-mesh solution mapping:
Mesh-to-mesh solution mapping involves the creation of multiple Abaqus jobs, each of which represents the configuration of the model in distinct, sequential periods of the simulation history. It can be used when a single mesh cannot be effective for the duration of a simulation. Each mesh subsequent to the initial configuration reflects a solution-dependent deformed configuration of the model. Therefore, analyses that use mesh replacement are sequentially dependent, and Abaqus uses mesh-to-mesh solution mapping to propagate solution variables from one analysis to the next.
PART B: STEP-BY STEP INSTRUCTIONS TO RUN ANALYSIS AND DESCRIPTION OF REQUIRED FILES
Follow the steps below to run an example simulation involving indentation of the inner surface of an outer pipe by the threads (teeth) on the outer surface of the inner pipe (NOTE: You will need to have Abaqus already set up to run user-subroutines to be able to run this example):
1. Open the CAE file ‘Mesh-to-MeshSolutionMapping.cae’. This file contains the base model MESH-0.
2. Run the script (File>Run Script…) ‘simulationDriver’. You can monitor the command prompt to see the simulation progress. The entire script should take approximately 10 minutes to run.
Description of the scripts and user element subroutine:
2.1. simulationDriver.py: This is the main script that drives the entire simulation (calls the remaining python scripts described below). The analysis starts by running the original model MESH-0 in the CAE file.
2.2. trigger.for: The inner pipe is displaced towards the outer pipe to cause indentation. Every time the inner pipe displaces 1 unit towards the outer pipe, the user element subroutine ‘trigger.for’ calls XIT to terminate the analysis and signal a remesh point. This prevents the elements from getting distorted excessively and compromising result accuracy.
2.3. copyModelAndReplaceMesh.py: Copies the deformed meshes of the old model to a new model, coverts them into new parts and remeshes them.
2.4. redefineSets.py: Redefines the sets used for applying the boundary conditions and sensor definition (that works with trigger.for to terminate the analysis).
2.5. redefineFacesAndSecAssign.py: Redefines the faces used for section assignments, and the sections assignments.
2.6. mapSolution.py: Transfers solution variables from the old analysis to the new mesh.
2.7. createJobAndWriteInputFile.py: Creates the analysis job and writes the input file.
2.8. meshAnimation.py: Makes animation avi (MESH_ANIMATION.AVI) from multiple odb files with the same base name.
2.9. meshAnimation_sweep.py: Makes animation avi (MESH_ANIMATION_SWEEP.AVI with 'sweep' view) from multiple odb files with the same base name.
3. Once the analysis completes, play MESH_ANIMATION.AVI and MESH_ANIMATION_SWEEP.AVI generated in the working directory to see results.
Note: This work uses fictitious geometries and material properties, and is meant for demonstration purposes only.
References:
- Section 12. Adaptivity Techniques, Abaqus Analysis User’s Guide (2016)
- Section 12.4.1 Mesh-to-mesh solution mapping, Abaqus Analysis User’s Guide (2016)
- Section 1.3.1 Upsetting of a cylindrical billet: quasi-static analysis with mesh-to-mesh solution mapping (Abaqus/Standard) and adaptive meshing (Abaqus/Explicit), Abaqus Example Problems Guide
- Section 1.3.18 Inertia welding simulation using Abaqus/Standard and Abaqus/CAE, Abaqus Example Problems Guide
Simulation Files:
