top of page

VIKTOR application for PISA 1D monopile design method

Updated: Feb 13


10 Years ago the PISA Project kicked off, an ambitious research project to renew the monopile design process and cut foundation costs. For those unfamiliar with offshore wind, monopiles are the primary foundation type for offshore wind turbines covering about 75% of all installations. The £3.5M joint industry research project was led by Ørsted and ran through the Carbon Trust’s Offshore Wind Accelerator programme, with the industry group including companies who, collectively, own over 70% of the total offshore wind projects in the UK.

The academic working group consisted of academics from Oxford University (project lead), Imperial College and University College Dublin. After a competitive selection process, I was lucky enough to receive the PISA PhD scholarship to work on the project for 3 years as part of the team at Oxford. Fast forward 10 years and the PISA design method is now the industry standard for designing monopiles globally.

This article presents some insights from implementing the PISA 1D method and making it available on the VIKTOR platform.

Implementation of the PISA 1D method

The design philosophy of the PISA method is shown in the image below. A simplified 1D model can be derived from 3D finite element analyses where the soil reaction components are extracted and converted into simplified parametric curves. After the calibration process, there is a good mach between the 1D model and the 3D FE model. The 1D model can then be used in optimisation algorithms to minimise foundation costs of monopile foundations where hundreds or thousands simulations need to be performed.

The PISA design method is detailed extensively in a series of publications in the Géotechnique journal.

The implementation of the simplified 1D model uses a 1D array of Timoshenko beam elements representing the steel pile supported by the 4 types of non-linear soil reaction springs: distributed lateral springs (p-y), distributed moment springs (m-ψ), base horizontal reaction (S-y) and base moment reaction (M-ψ). The internal virtual work equations for the foundation model shown below form the basis of the 1D finite element model.

The internal force vector can be calculated numerically using Gauss integration over each of the elements. Note that the internal bending and shear forces of the pile can simply be calculated using the matrix multiplication (K u) as this part is uses a linear set of equations.

Below is an extract of the implementation of the force vector for the distributed soil reaction components, which is repeated for each of the Gauss points with coordinate x and weight w.

for x, w in zip(xi, wi):
    z = z_nodes[i] + x * l_e

    N = np.array(shape_functions(x, l_e, phi))
    v = np.matmul(N, u_e)
    p = lateral_soil_reaction(v, z, soil, pile)

    dN = np.array(cross_section_rotation_functions(x, l_e, phi))
    psi = np.matmul(dN, u_e)
    m = distributed_moment_soil_reaction(psi, p, z, soil, pile)

    f_e_soil = f_e_soil + w * l_e * (p * N + m * dN)

Similarly the stiffness matrix can be calculated and the solution to the non-linear problem is calculated using a Newton-Raphson scheme. Solving the 1D model typically takes a fraction of a second, which makes it ideal for optimisation algorithms to minimise foundation costs.

Using VIKTOR as a platform to develop apps

I have worked on geotechnical software projects using different python packages and decided to give VIKTOR a try. The first impressions are very positive:

  • Free to publish (up to 5) public apps with good quality hosting

  • Graphical user interface is easy to build

  • Easy to set up - except perhaps if you're running on a Mac

  • Good documentation to get started

It took me about 3h to get familiar with the platform and convert an existing Dash application into my first VIKTOR app. The main items which required some re-coding were the new user interface, which actually reduced the total number of lines of code.

Below is a screenshot of the app, where you can change a few parameters and see the effect on the foundation behaviour. If you want to try it for yourself, you can access the app via this link.

One of the main drawbacks of the VIKTOR platform that hit me some years ago was the cost, but the making the platform free for public apps is a great move in the right direction. Congrats to the VIKTOR team for developing this platform 👏


I decided to make the PISA 1D monopile design method available so that others can quickly perform a calculation using the method. VIKTOR proved to be a great platform to publish the app with a simple GUI and make it publicly available.

Leave a comment or drop me a message if you want to add features to the application.

40 views0 comments
bottom of page