Search Contact information
University of Cambridge Home Department of Engineering
University of Cambridge >  Engineering Department >  computing help


11. ABAQUS Advanced Analysis

Q11.1 : I want to specify the variation of the Elastic modulus as a function of the deviatoric shear strain. I am told that this cannot be done directly but as has to be done indirectly using field variables. How does one do it?

In the material properties under the keyword *MATERIAL for *ELASTIC specify the range of values of E and the corresponding shear strain values in the ascending order. Here use the deviatoric shear strain values as Field variable 1.
  1.2E5,  0.3, , 0.0001
  1.5E5,  0.3, , 0.0010
  2.0E5,  0.3, , 0.002
The DEPENDENCIES parameter specifies how many field variables are being used. For this example it is 1.
Note that omitted value is the temperature. Now using user subroutine FIELD specify the Field variable value to be the calculated deviatoric shear strain value.

Q11.2 : How do I use a User Subroutine to initialise the stresses at the beginning of the analysis?

   < No data card required >
Include the above line in the ABAQUS input file prior to the first STEP statement. This will invoke the call to the following subroutine which could be in a file called sigini.f (for Linux system) and sigini.for (for Windows XP).
     +                  LAYER,KSPT,LREBAR,REBARN)
C     In situ Effective stresses :
C     SIGVET - Vertical Effective Top
C     SIGVEB - Vertical Effective Base
C     SIGHET - Horizontal Effective Top
C     SIGHEB - Horizontal Effective Base
The abaqus job is submitted from a command line :
abaqus j=analysis user=sigini
The above example is trivial and the same thing could have been specified with the following statements without having to use user subroutines.
** element set  YB  SIGVB  YT   SIGVT  KX    KZ
ELSET,          0.,  60.,  11.,  11.,  0.6,  0.6
If the relationship between horizontal an the vertical stress is not linear then one has to use the User subroutine. For example if SIGHEB = 34 which is not equal to 60 x 0.6.

Q11.3 : Can I use CAE to submit an analysis using user subroutine?

Yes. Select the Job module and choose to Create. In the dialogue box which pops up choose the General tab.
Then click on the Select... next to the user subroutine File label.
Edit/Inertia Dialogue Box
Change directory and choose the user subroutine. Click on OK.
Edit/Inertia Dialogue Box

Q11.4 : What is the difference between user subroutine USDFLD and UFIELD?

The UFIELD subroutine is used to set values of Field Variables only.
Whereas USDFLD allows for calculating and storing user dependent variables.

Q11.5 : How does one submit jobs using user subroutines from the command line?

abaqus j=analysis-id user=user

Q11.6 : What naming convention is to be followed for the files with user subroutines?

In the Linux system create the file to be with extension .f and for Windiws XP system it should be .for.

Q11.7 : How do I use more than one user subroutine in a single analysis?

All the subroutines are included in the same file, included one after the other.

Q11.8 : I included a user subroutine called USDFLD and wrote out some stress parameters to unit 6 but these did not appear in the dat file. What could be the problem?

It is possible that the following statements may have been inadvertently omitted in the definition of the material properties

Q11.9 : Is there an alternative to writing to the *.dat file as it is not easy to extract the information /data written to the dat file?

Yes. See the answer to the next question (Q11.10). Here select a separate unit number (instead of 6) (say) 101.

Q11.10 : I write out data to a file on unit 101 and specified the file name in an open statement but could not find the file after the analysis was completed?

The correct way to do this is to use the UEXTERNALDB as listed below :
         INTEGER MPN
      IF (LOP.EQ.0) THEN
         IF(IPC.EQ.0) THEN
         ELSEIF (LOP.EQ.3) THEN

Ensure that the fully qualified name is used.

Q11.11 : How can I sum up the reaction forces for a given set of Nodes?

It would help to create a NODE set with all the nodes for which the Reactions need to be summed up.
Select Visualization module.
Click on "Create XY Data" icon.
Create XY Data
In the dialogue box which appaers
(o) ODB field output
toggle this
Click on Continue ...
In the XY Data from ODB Field Output Dialog box, choose
Position : Unique Nodal
XY Data from ODB Dialog Box
Scroll and click on right pointing triangle next to RF to open up.
Select the component you are interested in say RF2 (Tick This)
RF: RF2 will appear in the window below .
Click on the TAB : Element/Nodes
on the LHS click on "Node Sets"
XY Data from ODB Dialog Box
On the RHS the node sets you have created will appear.
Select the one for the Reactions you require.
Click on SAVE.
in the Save XY Data dialog box
click on OK.
Click on "Create XY DATA" icon (the same one as before)
This time TOGGLE
(o) Operate on XY DATA
Click on CONTINUE ...
In the new dialog box on the RHS will be listed various functions/operations.
scroll down and LMB click on Sum((A,A....))
This will appear in the top window.
On the LHS all the reaction forces (RF2, say) for each of the nodes in the selected set will be listed..
Operate on XY Data Dialog Box
Highlight all of these. (by holding down the LMB and dragging it over all the lines).
Click on the Add to Expression button
Click on Plot Expression button.
This will plot the sum of the selected component of Reactions for all the nodes in the selected node set.

Q11.12 : Is it possible to customise output data so that it can be written to a file which can be imported into a spreadsheet program?

See the answer to the previous question Q11.10 in creating a file.
Write to this unit number (101) in the appropriate format.

Q11.13 : I tried to use the GETVM calls to extract some parameter values which were not available in the UMAT subroutine namely the PORE PRESSURE in a consolidation analysis but I could not. The values came out as unspecified?

Not all parameter values are available in this manner.

Q11.14 : I am getting an error message saying that an illegal numerical operation is attempted when I use my UMAT subroutine with the latest version whereas it ran without any problem with an older version of ABAQUS? How do I fix the problem?

Earlier version of ABAQUS and/or the Fortran compiler's used may have been fault-tolerant.
May be the latest version are more rigorous. The likely reason could be trying to calculate either a square root of a negative value or exponential of a high value (or value of power of some number) which is too high. Here exceeding the largest number that could be stored in a computer.
It is a good practice to test the values for sign before attempting to find the square root. Also the values for which the exponential value is being calculated.

Q11.15 : In a consolidation analysis how can I calculate the amount of flow taking place across a boundary where the pore pressure is being specified?

RVF Reaction fluid volume flux due to prescribed pressure. This is the rate at which fluid volume is entering or leaving the model through the node to maintain the prescribed pressure boundary condition.
A positive value for RVF means fluid entering the model.

Q11.16 : How do I specify that no flow takes place across a boundary ie it has to be impermeable?

All boundaries by default are considered to be impermeable. So no need to specify anything along the boundary concerned.

Q11.17 : In a consolidation analysis at the initial stages the pore pressures were fluctuating beyond the possible range of the pore pressures proportional to the load applied. How is this possible?

It could be due to the mesh not being fine enough to represent the steep pore pressure gradients near a draining boundary at the initial stages.

Q11.18 : I am carrying out a tunnel excavation analysis and between the soil excavation and the tunnel lining placed there is load relief. How do I model this?

When the soil is excavated in order to place the lining restrain the nodes which lies in the interface for soils and lining in the step in which the excavation takes place.
The reactions are equivalent to the support provided by the excavated soil. If the lining was placed then these forces are then transmitted to the lining.
Modify the input file to include the reactions as Nodal forces in the same step in which the excavation is carried out.
Then in the next step reduce the reactions by the proportion by which load relief is to be applied.
Then in the step where the lining is to be placed include the elements which represent the lining using

In the same step remove the rest of the reactions loads along the interface.
This is illustrated by the following Example 1.1.11 Stress free Element Reactivation in the version 6.8 Examples Manual Of course this is tedious that one first has to fix the nodes from moving when the excavation is carried out in order to obtain the Reaction forces.
Then the input file has to be editted to include these reactions as nodal forces. Then again the nodal forces are reduced to represent load relief. Then the lining is added and the remainder of the nodal forces removed to facilitate the transfer of these forces to the lining,

Q11.19 : I have a large structure which has a repeating pattern of a basic unit and what is the best way to model this structure?

substructure modelling. Example 2.2.1 Analysis of Rotating Fan using Substructures and cyclic symmetry in the ABAQUS Examples manual (version 6.8)

Q11.20 : How do I go about introducing an imperfection like a dent in a perfect structure?

Imperfections are introduced using the keyword *IMPERFECTION. There are a number of ways of specifying this.
The simplest is to specify the displacement which will move the nodes from its initial position to the dented position under the IMPERFECTION keyword. Only the nodes involved in creating the dent are included.
node1,  xd1, yd1, zd1
node2,  xd2, yd2, zd2
node3,  xd3, yd3, zd3

Q11.21 : I am modelling a dish where I have the precise co-ordinates but in order to use automatic mesh generation I have to use an approximate method of conics. How to reduce the initial error in the geometry?

If the precise geometry can be explicitly defined as a function of the X, Y and Z co-ordinates for the 3-Dimensional structure then can write a simple Fortran program to read the approximate co-ordinates and substitute the Z co-ordinates where appropriate.

Q11.22 : I am modelling two parallel beams which are interconnected by a connecting rod which does not transmit any bending moment from one beam to the other. How do I model this?

Use a Strut element (example T2D2 for 2-Dimensional analysis) to connect the two parallel beams as strut elements cannot transmit bending moment.

Q11.23 : I was carrying out a vibration analysis involving a one dimensional cantilever beam and at the end of the beam there was a concentrated mass which I specified using the assembly option in CAE. After the analysis was completed I found that the concentrated mass had been ignored by the analysis?

Yes the concentrated Mass has to be attached to the appropriate point/node directly.
If using ABAQUS/CAE choose Property module and select Special menu and choose the option Inertia. Choose the option Create. Edit/Inertia Dialogue Box In the dialogue box enter EndMass for name and the type to be PointMass/Inertia and click on Continue....
Click at the point in the viewport to which the concentrated mass is to be attached and then click on Done.
In the Edit Inertia dialogue box enter the magnitude of mass for Mass and click on OK.
This completes the creation of a Mass and a cyan box should be displayed representing the position of the mass. Edit/Inertia Dialogue Box

Q11.24 : I have a problem instaling Fortran Compiler and getting the user sub routines to work with ABAQUS on Windows XP computer?

See the following webpage for step-by-step instructions in installing the compilers for ABAQUS to run user subroutines.
Instruction for installing FORTRAN Compiler

Q11.25 : How do I obtain the resultant curvatures of a surface in ABAQUS?

SK1, SK2 and SK3 represent the radius of curvature in the X, Y and Z directions respectively.
Include the following statements in the *.inp file
*EL PRINT                  
This will print the radii of curvature at the integration points in the *.dat file.
Sample output in the *.dat file :

    ELEMENT  PT FOOT-       SK1         SK2         SK3     

           1   1         4.8530E-03  1.6170E-03 -5.5983E-03
           2   1         4.8495E-03  1.6170E-03 -5.6016E-03
           3   1         4.8471E-03  1.6131E-03 -5.5955E-03
           4   1         4.8540E-03  1.6131E-03 -5.5985E-03
           5   1         4.8427E-03  1.6141E-03 -5.5918E-03
           6   1         4.8488E-03  1.6142E-03 -5.5913E-03

This will print the radii of curvature at the nodes of each element. However for lower order elements it is likely to be the same value as the element centroid.
SK1, SK2, SK3

This will print the radii of curvature averaged at the nodes.
SK1, SK2, SK3
Include the following statements which will generate history plots for the element set mid-span which will have to be defined.
** HISTORY OUTPUT: H-Output-1                        
*Output, history, variable=PRESELECT 
SK1, SK2, SK3                  
*End Step               
The calculations of principal values of the curvature provided by Arnaud Bonnin based on C.R.Calladine's Book.

Q11.26 : How do I model a fluid filled sphere embedded in a cube which is subjected to external pressure?

This is illustrated with an analysis where a fluid filled spherical cavity is enclosed in a cube which is subjected to uniform external pressure. Because of symmetry about the 3 axes only an eighth of the model needs to be considered.
The fluid which is fully enclosed is represented by the surface and competely defined by the elements on the surface. These are membrane like elements made out of 3 and 4 noded elements (F3D3 and F3D4 respectively). The nodes on the surface is common to the fluid and the surrounding media.
Fluid Sphere Finite Element Mesh

Figure shows the mesh. In this example the fluid is modelled using 3 F3D4 elements. The nodes should be entered in the element definition so that positive normal to the surface using the Right hand rule should be pointing towards the fluid side of the mesh ie the interior of the fluid.
Normal to the Fluid Element
** 4 noded Fluid elements
   11,  14,   15,  12,    9
   12,  15,   13,  10,   12
   13,  11,   13,  15,   14

Only situations where the pressure and temperature of the fluid in a cavity is uniform at any given time can be considered.
You also need to define a reference node for the fluid whose position is arbitrary but for clarity should be positioned inside the fluid region. The volume of the fluid region and the pressure are then associated with this reference point. This is known as the cavity reference node . Only the first-order hydostatic fluid element is available. There are also 2-dimensional and axisymmetric fluid elements available (F2D2 anf FAX2).
The cavity reference node has the cavity pressure as the only variable (d.o.f. 8). The cavity reference node cannot be associated with any other element type.
** Node 880 is the fluid reference node for the cavity
**          It is located at the centre of the cavity.
 880,  0, 0., 0.

The surrounding media are represented by three C3D8 elements.
The fluid property statement associates the reference node with a cavity and requires the Fluid Density and the fluid bulk modulus, These statements along with the element definition completely defines the fluid filled cavity.
For output the following statements are used to get information about the volume of the cavity (CVOL) and the fluid pressure in the cavity (PCAV).
*Output, history
The complete input for the analysis is : ABAQUS Input File
Once the analysis has completed the results are as shown :
Click on Results ---> History Plot. History Plot Option

Highlight both curves and click on Plot.
Cavity Pressure vs Volume Plot

A further example shows fluid enclosed in a shell subjected to gravity loading.
Figures shows the deformed shape with and without the fluid elements included in the display. Fluid enclosed in shell

Fluid enclosed in shell

Q11.27 : How do I model a fluid filled sphere embedded in a cube which is subjected to a periodic pressure in a dynamic analysis?

To model the fluid element, the fluid elements defined in the example for the previous question is replaced with a surface based definition of the fluid cavity.
** 4 noded Fluid elements
   11,  14,   15,  12,    9
   12,  15,   13,  10,   12
   13,  11,   13,  15,   14
above is replaced with the following :
*Elset, elset=__PickedSurf1A_S2
  1, 2,  3
*Surface, type=ELEMENT, name=Surf-1
__PickedSurf1A_S2, S2
 880,  0, 0.
Then replace the above with the following material properties :
 880,  0, 0., 0.
*Fluid behavior, name=VENT-A
*Capacity, Type=POLYNOMIAL
 2.599900e+04,   4.350000e+01,  -1.480000e-02,   0.000000e+00,   0.000000e+00
*Fluid behavior, name=VENT-AA
*Fluid cavity, name=Fluid-A99, ref node=REF-NODE-AA, surface=Surf-1, behavior=VENT-A, ambient pressure=10

The next step is to define the Periodic Amplitude for the applied pressure load. If the pressure load has already been created choose the LOAD module and the pressure load and click on Edit Load button. In the new dialogue box choose click on Create ... next to the Amplitude.
This will display the following dialogue box. Choose Periodic
Defining the amplitude.
Click on Continue and in the following dialog box enter the defined values which are based on the following assumption :
For a simple sine function : Definition of a Periodic function. Sine function. parameters for the Periodic function.

Parametric Study

The following lists the results from a parametric study of both static and dynamic analysis :
Results from a Parametric study
Finally a video clip from an analysis of an artificial heart illustrating the use of fluid elements (ref : M.Sc thesis : Computational Modelling of the Effects of Direct Mechanical Ventricular Actuation on Heart's Performance, University of Leeds by Massimo Coppoccia, MD, August 2011).

Q11.28 : How do I calculate the volumetric strain and be able to post process it?

The following input file demonstrates this.

Example Input file.

The following lines are added to the Material definition

This allocates 4 storage locations for output variables and then invokes a call to the user subroutine UVARM.

Include the output variable UVARM in the list of output variables (this will then get written to the *.odb file).

*Output, field, variable=PRESELECT
*Element Output, directions=YES
The following lists the user subroutine.

User Subroutine UVARM.

Here the use of the following statements store the individual strains as well as the volumetric strain.

These variables are then available as UVARM1, ... UVARM4 in the odb file.

Q11.29: How does one specify material properties which varies with depth?

In this example the Elastic modulus and the friction angle are assumed to be varying linearly with depth.

Here the depth is used for the range of the field variable.

The following input file demonstrates this.

Example Input file.

In the material properties under the keyword *MATERIAL for *ELASTIC specify the range of values of E corresponding to the depth. Do the same with the friction and dilation angles. This is illustrated with a single field variable.

*Material, name=Material-1
45., 0.2,  0.
75., 0.2, 100.  
*Permeability, specific=10.
 1e-08, 0.3
*Mohr Coulomb, dependencies=1
30.,10., , 0.
40.,20., , 100.
*Mohr Coulomb Hardening
 0.2,   0.,
 0.4, 0.05,
 0.6, 0.09,
The DEPENDENCIES parameter specifies how many field variables are being used. For this example it is 1.
The following lists the user subroutine.

User Subroutine FIELD.

Here the use of the following statement to calculate the depth by subtracting the Y co-ordiante from the Y co-rdinate at the top of the mesh.


Q11.30: How do I write the State variables STATEV to the odb file?

This is illustrated with 16 STATEV variables written to the history output.
*Output, history
*Node Output, nset=sand
RF1, U1
*Element Output, elset=sand
SDV1, SDV2, SDV3, SDV4, SDV5, SDV6, SDV7, SDV13, SDV14, SDV15, SDV16

Q11.31: How can I access the pore pressure from the UMAT subroutine in a soils analysis?

In the material definition include the following lines :
You also need to introduce a field dependency for this. Even if such a dependency is not part of the model a dummy field dependency will have to be introduced. Otherwise the subroutine USDFLD will not be called by ABAQUS.

A dummy field dependency can be introduced for example as follows :

  1.E-8, 1.0, , 0.
  1.E-8, 1.0, , 1.
Here the Field variable is varied between 0 and 1 but the actual value of the field variable does not have any effect on the permeability which is fixed at 1.E-8.
The following lists the user subroutine USDFLD. The saturation and pore pressure values which are accessed using subroutine calls to GETVRM are stored in (say) locations 15 and 16 of the STATEV variable respectively.

User Subroutine USDFLD.

The following statements are then included in the UMAT subroutine to access the saturation and pore pressure values.

 9860   FORMAT(1X,'** POREP =',E15.5,2X,'SAT =',E15.5)

Q11.32 : How can I apply a temperature gradient across a shell element thickness?

After the geometry of the shell element has been defined in the PROPERTY module create a material and input the material properties.
Then create a section.
Section definition
Click on the Advanced tab and in the dialog box and toggle the Linear through thickness for Temperature variation then click on OK.
Linear through thickness

Then in the LOAD module select the Pre Defined Field. From the dialog box click on the Other and select temperature and click on Continue... . Then select the region from the viewport to which this temperature gradient is to be applied. Click on Done button below the viewport.
Pre Defined Field
Set the Section variation to be Gradient through shell section from the pull down menu. Then enter the appropraite values for Reference magnitude (say) 50 and Thickness gradient (say) 100 and click on OK .
Temperature Gradient

© Cambridge University Engineering Dept
Information provided by abaqus-support@eng
Last updated: 27 April 2012