Skip to main content

D-Sheet Piling

Analyzing a D-Sheet Piling model in VIKTOR can be done using the DSheetPilingAnalysis class (worker required).

Add integration to app config​

To make the worker integration available through the interface, add the following to your viktor.config.toml:

worker_integrations = [
"dsheetpiling",
]

For personal use, install and enable the worker with VIKTOR Desktop. Instructions on how to install an organization worker can be found here.

App code​

No binding is provided by VIKTOR for this module, which means that the input file has to be generated manually or by using the GEOLIB:

import viktor as vkt

# Generate the input SHI file.
input_file = ...

# Run the analysis and obtain the output file.
analysis = vkt.dsheetpiling.DSheetPilingAnalysis(input_file)
analysis.execute(timeout=10)
output_file = analysis.get_output_file()

Testing​

New in v13.5.0

mock_DSheetPilingAnalysis decorator for easier testing of DSheetPilingAnalysis

DSheetPilingAnalysis.execute needs to be mocked within the context of (automated) testing.

The viktor.testing module provides the mock_DSheetPilingAnalysis decorator that facilitate mocking of workers:

import unittest

from viktor import File
from viktor.testing import mock_DSheetPilingAnalysis

from app.my_entity_type.controller import MyEntityTypeController

class TestMyEntityTypeController(unittest.TestCase):

@mock_DSheetPilingAnalysis(get_output_file={
'.shd': File.from_path('test_output.shd'),
'.shl': File.from_path('test_output.shl'),
'.shs': File.from_path('test_output.shs'),
'.sho': File.from_path('test_output.sho')
})
def test_dsheetpiling_analysis(self):
MyEntityTypeController().dsheetpiling_analysis()

For the decorator's input parameters the following holds:

  • If a Sequence type is provided, the next entry is returned for each corresponding method call. When a call is performed on a depleted iterable, an Exception is raised.
  • If a single object is provided, the object is returned each time the corresponding method is called (endlessly).
  • If None is provided (default), a default File/BytesIO object (with empty content) is returned each time the corresponding method is called (endlessly).