Developed by Luke P. Frash
This Geothermal Design Tool (GeoDT) is a fast multi-well flow and heat transfer model intended to aid high-level decision making for enhanced geothermal systems - geothermal energy development. This tool:
- Generates a 3D geometry that includes wells and fractures
- Assigns dimensionally-scaled properties these wells and fractures
- Creates a mesh of 1D pipes and nodes to represent hydraulic connectivity in the 3D well and fracture network
- Solves this 1D network for fluid flow based on user assigned boundary conditions
- Predicts natural fracture and hydraulic fracture stimulation by fluid injection
- Solves this 1D network for time-dependent heat production
- Estimates transient net electrical power production from the network
- Outputs a
.csvfile that summarizes the input and output parameters - Outputs
.vtkfiles for visualizing the system geometry - Provides statistical data visualization example scripts and plots
This code is in active development. We appreciate comments and questions that will help to improve this project.
GeoDT.py: main program to create and analyze fracture-well system geothermal productivityGeoDTviewer.py: supporting scripts for statistical analysis and plotting of multiple GeoDT runs using the csv file output from GeoDT and an inputdocumentation/: information about the input and output variables and the model's methodsexamples/: example scripts that run GeoDT using the input values as specified in the example scriptslibs/: GeoDT subroutines
Set up Virtual Environment (strongly recommended)
python -m venv ./venv
pip install --upgrade pip
pip install -r requirements.txt
source venv/bin/activateIf you do not set up virtualenv, you will need to ensure that the dependencies in requirements.txt are installed
in global site-packages (pip install -r requirements.txt)
- Pick an example script from
examples/:validation_files generally specify deterministic geometries and boundary conditionsexample_files are generally stochastic multi-run models that focus on EGS design optimization
- Softlink or copy from package root to script i.e.
ln -s examples/validation_2inj_2pro_2nf.pyorcp examples/validation_2inj_2pro_2nf.py . - Run the example script i.e.
python validation_2inj_2pro_2nf.py - View the result
.vtkfiles using a compatible visualization software (e.g., ParaView) - Inspect the example script and edit as needed to customize to your modeling goals
