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)