Get notified!

Automatically receive blogupdates from our FEA Experts about Abaqus and FEA

Simuleon FEA Blog

Abaqus ODB Extractor and Builder Tool (OEBT) Plug-in

Posted by Nikolaos Mavrodontis on Sep 17, 2019 9:40:00 AM

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.

assembly

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

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")

  • nullify data

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 JSON parameter file edited

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 4old vs new

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)

Download Plugin Abaqus ODB Extractor and Builder Tool (OEBT)

Topics: Abaqus, plug-in, ODB Extractor and Builder Plug-in

About our FEA Blog:

Simuleon blog topics related to Finite Element Analysis like; Structural Analysis and CFD analysis performed with SIMULIA Abaqus FEA, XFlow CFD, Isight Simulation Automation, Tosca Topology Optimization and Fe-Safe accurate Fatigue.

Subscribe to our Blog.

Search All Blogs

      Recent Posts

      Most Popular Posts

      Read All Blogs

      View All