In this article the problem with the time-intensive process of using D-foundations is explained, our solution is presented, but also the technical procedure to create the solution is explained. Finishing the article with a summary of the advantages and potentials of automation in combination with D-foundations.
D-foundations is a software-package created by Deltares; an academic institute that focuses on Hydro and Geo-technologies. It is mostly used in the Civil and Architecture sectors.
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.
To evaluate a set of possible designs, often a Geotechnical Engineer will need to analyze a great number of designs to find the most cost-effective design that still meets the safety standards. This is often time-intensive and tedious process, which is also prone to errors. With today’s high demands on short delivery times, only a handful of designs can be evaluated, so the best design is not always found within that time-frame.
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 code (see example code below). We can take the necessary input data, which is already centralized in the VIKTOR application, and run multiple different D-Foundations analyses without any human interaction needed. (No need for opening the GUI of D-Foundations and going through each of the steps manually).
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 input and output data of the D-Foundation 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 analysis results. These files, however, are not very easy to understand and even harder to write yourself.
Therefore the following automate workflow was devised:
- generate a correct D-Foundations input file using python
- send this file to the server where D-Foundations is installed*
- run a D-Foundations analysis on the input file and send the data dump-file back to the application*
- 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 past 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 are 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:
- GEF files (containing soil information) are analyzed and corresponding soil layouts are defined
- The properties of the selected Pile type (selected by the user) are extracted from the database
- The grid of Piles is defined, which includes the Pile locations, height, properties and loads
- Any additional calculation options, selected by the user in the web interface, are collected
- 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.
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.
Using the D-Foundations file
Once the D-Foundations file has been created, it can be used in several ways:
- 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.
- 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.
This advantages of this binding 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 computer’s or drives. Any changes to these files are logged centrally, so everyone has the most up-to-date data.
- 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/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 will allow a developer to quickly develop a user-friendly application, enabling any colleague to perform D-Foundations calculations.
These advantages will offer a lot of potential for a company, both in terms of costs and quantity:
- The reduction in time could allow companies to evaluate more foundation designs and find a more cost-effective design in the same time-frame.
- The reduction in time could allow companies to increase their output by taking on additional design projects and completing more projects in the same time-frame.
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 pile foundation designs. This opens up the possibility of evaluation 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.
The VIKTOR platform ensures that the data required for the D-Foundations 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 Geo-technical Engineer doesn’t even need to have the software or the input data available on his machine to be able to perform D-Foundations calculations and analyses.