Plane Strain FEA – Non linear staged analysis

Continuing the recent series of posts featuring Fortran based FEA routines, the spreadsheet from the previous post has been revised:

  • The spreadsheet allows for a staged analysis, with additional elements placed in layers for any number of construction stages.
  • Temporary loads may be applied to the top surface of each layer, and then removed.
  • The mesh details are entered as node coordinates, and plate node numbers, rather than the automated mesh generation methods used previously.
  • The PlateStress4 user defined function (UDF) has been added, allowing beam forces and moments to be extracted from the Gauss Point stresses of plate elements.

The new file, including full open-source code, may be downloaded from:

As before, the spreadsheet requires Python (including Numpy) and xlwings, all of which are included in the free Anaconda Python package.

Example input and results are shown below, featuring analysis of a 10 metre high cantilever retaining wall, with fill placed in 5 stages:


Any number of materials may be defined.  Properties are:

  • E: Young’s Modulus
  • v: Poisson’s Ratio
  • c: Cohesion
  • phi: Friction angle
  • psi: Dilatency angle
  • gamma: density (force units)

All plates are 8-noded plane strain elements, with nodes defined in the clockwise direction, starting at the bottom left corner.


The construction sequence is defined with the last plate number in each applied layer (column W).  Both plate and node numbers must form a continuous sequence in each layer.  Compaction loads (column Z) are applied to then removed from the top surface of the plates listed in columns X and Y.  The final layer may also have a surcharge load applied to the specified plates as the final load case.

Restrained nodes are indicated with 0 for restrained freedoms and 1 for unrestrained.

Any number of pairs of nodes may be pinned, forcing equal X and Y deflections.


Typical results for the example structure are shown above.  The next post will provide more details of results of different soil properties, and also compare results with those from a commercial FEA package (Strand7), and standard retaining wall analysis procedures.


Numerical summary results are shown above, including results after placing each layer, and after application and removal of the compaction load.  Total execution time was just over 5 seconds.


The spreadsheet is set up to calculate the axial force, bending moment, and shear force over the height of the wall for any specified load case.


Calculation of the wall actions is carried out on the ConcRes sheet.  The procedure to generate these results is:

  • List the element numbers where results are required, with 4 rows for each element.
  • Calculate the row and column numbers from the StressRes range for the required Gauss points and load case.
  • Use the Index function to return the required stress values.
  • Use the PlateStress4 function to calculate the axial force, bending moment, and shear force for each of the selected plates (see previous post)
This entry was posted in Beam Bending, Concrete, Excel, Finite Element Analysis, Fortran, Geotechnical Engineering, Link to dll, Link to Python, Newton, NumPy and SciPy, UDFs, VBA and tagged , , , , , , , , , , , . Bookmark the permalink.

1 Response to Plane Strain FEA – Non linear staged analysis

  1. Pingback: Retaining wall analysis – FEA and hand calculations | Newton Excel Bach, not (just) an Excel Blog

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.