Automation with Python
GeoPy is the GeoDict-Python Interface included in the GeoDict Base Package. The GeoPy scripting interface is a full-featured, tightly integrated Python interpreter that provides direct programmatic control over GeoDict.
GeoPy is intended to replace the traditional GeoDict GMC macro language and, to this end, GeoPy scripts can be directly recorded and executed from the GeoDict GUI. The recorded GeoPy scripts can be extended using the functionality described below, allowing for fully customizable pre- and postprocessing and automation from within GeoDict.
- In parameter studies, modeling materials of varying porosity, performing simulations on these materials, and aggregating the results (e.g. permeability)
- Automating simulation workflows, e.g. download material CT-data from web-server, perform simulation, upload simulation result data
- Storing simulation result data into a database (e.g. SQL)
- Generating reports using MatplotLib
A GeoPy script has access to the full standard Python library, including file and network input/output, as well as the following set of GeoDict-specific interfaces:
- Execution of any GeoDict command, such as data import, structure generation, simulation and structure manipulation
- Opening of GeoDict result files (GDRs) to extract and aggregate results (e.g. pore size distributions, filtration efficiencies, mechanical stiffness tensors, ...), even over multiple simulation runs
- Direct access to the currently loaded voxel geometry as well as solution fields (e.g. flow fields, stress/strain tensor fields, particle trajectories...) to perform arbitrary analyses directly on material model data and simulation result data
- Custom graphical dialogs to parametrize user scripts with an easy-to-use interface
- Report generation, for example as PowerPoint Presentation or as Excel file
- Highly efficient numerics and analyses using the NumPy library, which operates directly on material model data and simulation result data
- Completely customizable, high-quality plot generation using the MatplotLib library
- Scientific computing and optimization via SciPy