On many occasions, particularly when our model size is large or when automatically generated Field/History outputs are used by default, the resulting output database of an analysis can be of significant size. Typically (at least for quasi-statics, statics), the user is mainly interested in retaining the first and/or last frames of generated output, as the main focus is the final deformed configuration, when a loading has been fully ramped up (100% loading). Additionally, when automatically generated output requests are used, predefined default output variables are written in the results database, whereas the user might only have interest in von Mises stresses and resulting displacements in the model.
In this blog post, we will be showcasing the OEBT plug-in, that allows the user to select the specific results that they would like to keep, and populate them in a new results' database.
The OEBT plug in for Abaqus, allows the user to create new output databases (odbs), from existing ones.
Unlike similar tools, the user has a high level of flexibility in terms of the entities that will populate the new output databases. The OEBT plug-in ,creates the new odb piece by piece, and does not require the user to run a datacheck first, and then copy over results data (unlike other tools available). The advantage of the OEBT, is that the user can modify the model size as well, by deciding which regions (or excluding them) , materials, sections, portions of the mesh, and what steps/frames/field/history data will be carried over, to the new database. This typically allows more freedom for reducing the size of the generated output database since model entities can be excluded from the new database and not only results data.
Installation
The installation of the plug-ins is quite straightforward. You can have a read about the installation process in the “Obtaining and installing the plug-in” section of Christine’s blog here.
Abaqus Example
For demonstrating the use of the OEBT plugin, a 3 point bending analysis of a rectangular bar will be used.
The geometry, material properties, and mesh discretization of the assembly, are shown in Figure 1.
Figure 1: 3 point bending example geometry.
Quarter symmetry(Z symmetry and X symmetry) is used, to reduce the computational time. The analysis, comprises of two steps, the loading step and the unloading step.
In specific, our 3 point bending setup, comprises of the rectangular bar specimen, made out of elastic plastic steel. The bar rests on the support, made out of linear elastic steel. The punch instance, made out of linear elastic steel, is displaced downwards during the Loading step, causing the yielding of the bar. Then during the unloading step, the punch is displaced upwards, moving away from the yielded bar. Contact has also been defined in the model between punch-bar and bar-support.
In terms of requested field and history outputs, predefined defaults have been requested, However our main interest in terms of assessing the results, will be stress, displacement, and equivalent plastic strain output.
10 frames per step is the selected output frequency( time period of t=1). So by defaults, we expect to have 20 frames of results in total, for both steps. For the loading step, since we are interested in the evolution of inelastic strains on the bar, we should keep all the result frames(10 in total). For the unloading step however, we are only interested in the last frame, to only validate that the punch has displaced according to our provided input.
In terms of results, we are interested in keeping von Mises stress (S), displacement results (U), and equivalent plastic strain magnitude (PEEQ) from both steps.
Running the Plug-in
The OEBT requires a JSON parameter file, wherein the user defines what needs to be extracted. The user should specify in that file, whether or not to add field data, sections, and if so, which in specific. In this parameter file, the user can define any features that will be passed over to the new database. If a feature is not defined, it will not be written in the new, reduced database.
This parameter file needs to first be generated. This can be done by running the "doc_JSON_creator.py, script in a command window ,as shown below, in Figure 2. After the script has been run, the extractionParams.json parameter file will be generated. This can then be edited by the user to define the items that will be passed on to the new database.
Figure 2: JSON parameter file generation detail.
Understanding the Parameter File
The JSON parameter file contains various parameter inputs. A basic description is provided below, of the main parameter categories:
1. Mesh ("MeshExtractionParams")
- currentlyDisplayed, layups,materials,plies,sections,types: allows the user to pass down the currently displayed mesh, appearing on the screen, to the new smaller database. The "currently displayed" is used by default. The rest of the items allow the user to filter which mesh entities will be written in the new database according to certain criteria (section assignments, materials etc)
- boundingBox, boundingCylinder, boundingSphere, boundingGeneral: various items here, allow the user to extract the mesh given a specified bounding box (xMin,xMax,yMin,yMax,zMin,zMax), sphere, cylinder etc.
- instances,sets: allows the user to extact the mesh, based on instance or set names.
2. Sets( "setsExtractionParams")
- nodesets
- elementsets
- surfaceSets
Any node, element or surface set may be extracted, by specifying their instance name or set name.
3. Materials("MaterialExtractionParams")
The tool can carry over either no material data, the top level containers only (by specifying hte materials to nullify), or the full material definitions. Only the materials which are applicable to the extracted mesh will make it to the new odb.
4. Profiles( "ProfileExtactionParams")
allows the user to select which beam profiles may be extracted and placed into the new odb.
5. Sections ("sectionExtactionParams")
Section definitions may be extracted and placed into the new odb, or may be dropped entirely.
6. Datums ("datumExtactionParams")
Datums may be extracted and placed into the new odb, or may be dropped entirely
7. Assembly Features ("assemblyExtractionParams")
Assembly level connector orientations and rigid bodies may be specified to be extracted or may be excluded entirely
8. Step Containers ("stepExtactionParams")
Any steps may be extracted and placed into the new odb, or may be dropped entirely.
9. Frame Containers("frameExtractionParams")
Any frames in any steps may be extracted and placed into the new odb, or may be dropped entirely
10. Fields ("fieldExtractionParams")
Field data may be extracted and placed into the new odb, or may be dropped entirely. The user may specify per model region, per field output, per frame, per step what to extract. They may extract any combination of any levels of these items, allowing full hierarchical control of field data extraction.
Step > Frame > Field > Region
Each of these levels of choice may be hierarchically combined such that that the user can specify for each step the frames they want to extract, for each frame the fields to extract, and for each field the regions (sets/instances) to extract. In this manner they have complete control over what field data should be carried over to the new odb.
11. History ("historyExtractionParams")
History data may be extracted and placed into the new odb or dropped entirely. Since history data is defined at the step level, if a step is not brought into the new odb, history data for that step is not carried over. Currently, all history data is pulled if specified. There is no reduction possible from user inputs.
Editing the Parameter File
In our example, we are mainly interested in the stress and plastic strain levels on the bar specimen. Displacements and contact stresses are not of interest. Therefore we want to keep stress, equivalent plastic strain magnitude results for all frames during the loading step.For the unloading step, we are interested in the stresses and equivalent plastic strain magnitude at the end of the step, so we will only choose to keep the last frame.
We will also choose to keep displacement results for frames 0 and 1 of the loading step, and for the last frame(frame 10) of the unloading step.
The rest of the available results data will not be passed on to the new odb.
Our modified parameter file, based on our results selection criteria, is given in Figure 3.
Figure 3: Edited parameter file for OEBT in 3 point bending example.
Running the OEBT
The OEBT execution and resulting output database is shown in the video below.
The original odb and the reduced odb together with their size and frame comparison are shown in Figure 4. Reduction in size from 30,5 Mb to 7,5 Mb
Figure 4: Original odb vs reduced odb.
The plugin along with its documentation can be directly downloaded by clicking the button below. This plugin can also be found in the SwYm community, here. (3DS login & password required)