Automate the processing of pile foundations with D-Foundations and Python



In this article, we explain the problem with the time-intensive process of using D-foundations, present our solution, and provide information on the technical procedure that is needed to create said solution. We finish the article with a summary of the advantages and potentials of automation in combination with D-foundations and Python.
How to create successful application that ensure adoption
Build successful applications

Learn the process to build apps that provide real value to your work and that other people will definitely want to use as well.

Pile foundation design with D-Foundations

Most companies that are involved in designing and building pile foundations need to perform many analyses to ensure that their foundation designs meet the safety standards as described in the NEN. Commonly, D-Foundations software is used to perform these calculations.

D-Foundations is a software-package, created by Deltares: An academic institute that focuses on Hydro- and Geotechnologies. It is mostly used in the Civil and Architecture sectors. With D-Foundations, you can calculate the required depth of a set of specified foundation piles, placed in a particular soil composition (based on GEF files) and under a certain load. Using location-specific soil information, these kind of foundation calculations can be applied to many different constructions in the Building and Infrastructure sector, such as a factory floor for heavy machinery, a tall apartment building, or even the foundations for wind turbines and high voltage pylons.

D-foundations software package.jpg

Analyzing, analyzing, analyzing

Normally, to find the most optimal and cost-effective design, a Geotechnical Engineer needs to analyse a great number of possible designs. This is a time-intensive and tedious process, which is very prone to error as well. With today’s high demands on short delivery times, there is only time to evaluate a handful of designs. Because of that, the best design is not always found within that time frame.

More analyses in less time

To be able to run more D-Foundations analyses in shorter time, a binding between the D-Foundations software and the VIKTOR platform is made. The working principle of this binding will be explained in more detail later on in this article.

With this binding, a D-Foundations analysis can be ran with just a few lines of Python code (see example code below). We can take the necessary input data, which is already centralized in the VIKTOR application upon uploading, and run multiple different D-Foundations analyses, without any human interaction needed. This means: No need for opening the GUI of D-Foundations and going through each of the steps manually!


Using D-Foundations

Similar to other software packages of the Geo-technical suite of Deltares, D-Foundations uses a set of input, settings, and dump files to store the in- and- output data of the calculations. These input files can be analyzed by D-Foundations in batch-mode through the command line, which will then create a dump-file with the results of the analysis. These files, however, are not very easy to understand and even harder to write yourself.

Therefore, the following automated workflow was devised:

  1. Generate a correct D-Foundations input file using Python
  2. Send this file to the server where D-Foundations is installed*
  3. Run a D-Foundations analysis on the input file and send the data dump-file back to the application*
  4. Visualize or output the data where necessary

*This requires no interaction from the user, nor does it require any coding from a developer, as this functionality is build into the VIKTOR platform

Points 2 to 4 are quite generic, so the focus of this article will be on the first point: Generating the input file.

Generating the D-Foundations input file

The combination of the filled-in VIKTOR web interface and the soil information that has been uploaded to the platform database hold all the information needed to perform a D-Foundations calculation. It is a matter of compiling all this data in the correct format into a D-Foundations input file. While the general concept of compiling a text-based input file is quite easy, the hardest part of creating a valid input file was the reverse-engineering of all potential input options and finding which specific pieces of information needed to be put where.

The current average D-Foundations input file that we work with can easily contain over 100,000 lines of text. Therefore, putting the right information in the right place is essential. Unfortunately, no detailed documentation of the input file layout is available, so this process took significant time to complete. An added complexity was that the layout of the input file would change significantly, depending on which options were selected. This required numerous edge-cases to be evaluated and a lot of logic to be implemented.

In order to ensure the input file is correctly generated, the following steps have been executed:

  1. GEF files (containing soil information) are analyzed and corresponding soil layouts are defined
  2. The properties of the selected pile type (selected by the user) are extracted from the database
  3. The grid of piles is defined, which includes the pile's locations, height, properties and loads
  4. Any additional calculation options, selected by the user in the web interface, are collected
  5. All data collected in steps 1 to 4 are inserted into a generic template (.foi file), which is then rendered as the final input file

The innovative part is making the binding generic enough in such a way that it can be applied over a wide range of different projects/designs. This makes the binding future proof and much more valuable to current and future customers.

Ways to use the D-Foundations file

Once the D-Foundations file has been created, it can be used in several ways:

  1. The user could download the generated input file, using a download-button in the VIKTOR application. This file could then be imported into D-Foundations manually in order to visually inspect the D-Foundations model and review the report generated by D-Foundations.
  2. The user could also have the VIKTOR application run the D-Foundations analysis on an external server, after which the results are send back to the application and can be output to the screen. This way, the user can quickly analyse a design without ever having to open the D-Foundations software package.

Both these options are generic functions that are part of the generic VIKTOR platform and are therefore available but not limited to the D-Foundations software package.

Downloading D-foundations input files in a zip-file Download D-Foundations input files in a zip-file

VIKTOR interface for automation in D-foundations

Run the D-Foundations analysis directly through the VIKTOR platform and visualize the result

Advantages of binding in D-Foundations

Binding D-Foundations with the VIKTOR platform has various advantages, like:

  • Single source of truth: By using the input data from the VIKTOR application, there is always a single source of truth for the analysis. This means no more random data files floating around on different computers or drives. Any changes to these files are logged centrally, so everyone has the most up-to-date data available at all times.
  • Efficiency: The binding enables running a great number of analyses in series or even in parallel. In most cases, the whole process of building a D-Foundations model, running the model and then processing the results takes around 5 seconds. This is easily 10 times faster than the average Geotechnical Engineer can setup and run a D-Foundations analysis.
  • Risk reduction: Once validated, the binding performs all required actions consistently, hence significantly reducing the risk of errors made in the calculations.
  • No extra licenses: The binding uses the clients own software package and licenses, so the client doesn’t need to purchase additional software or licenses.
  • Easy to use: Not only is the binding easy to use for the end-user (who now only has to worry about a handful of input parameters), the engineers and/or developers can write a working script in about 10 lines of code. The binding follows the same structure as the D-Foundations user interface, which is familiar for anyone who has used this software before. This allows engineers/developers to quickly build a user-friendly application, enabling any colleague to perform D-Foundations calculations easily.

Potential for cost and quantity

These advantages offer a lot of potential for a company, both in terms of costs and quantity:

  • The reduction in time allows companies to evaluate more foundation designs and find a more cost-effective design in the same time-frame.
  • The reduction in time allows companies to increase their output by taking on additional design projects and completing more projects in the same time-frame.

Endless possibilities

The binding that has been written for D-Foundations has been set up in such a way that it is as generic as possible. This allows it to be applied to many different varieties in the design of pile foundations. This opens up the possibility of evaluating a great many different designs in an optimization scheme.

The binding is very user-friendly and follows roughly the same steps as setting up a D-Foundations calculation through the D-Foundations user interface. Therefore, writing the code to create a D-Foundations input file should be very straightforward for an engineer or developer who has used the software package before.

D-Foundations and VIKTOR

The VIKTOR platform ensures that the data required for the D-Foundations calculations is all centralized in a single place. It also handles all data-traffic between the application and the server with the D-Foundations software package. This way, the Geotechnical Engineer doesn’t even need to have the software or the input data installed on his device to be able to perform D-Foundations calculations and analyses!


Related Blog Posts

plotly pandas numpy matplotlib python

Visualize your data with Python and VIKTOR

Read more

Save time by automating PLAXIS in the Cloud

Read more

Hackathon stimulates knowledge development

Read more