GEOPHIRES-X

Combines reservoir, wellbore, surface plant, and economic models to estimate the capital and operation and maintenance costs, instantaneous and lifetime energy production, and overall levelized cost of energy of a geothermal plant.
https://github.com/nrel/geophires-x

Category: Renewable Energy
Sub Category: Geothermal Energy

Last synced: about 7 hours ago
JSON representation

Repository metadata

GEOPHIRES is NREL's free and open-source geothermal techno-economic simulator.

README.rst

          ========
Overview
========

|GEOPHIRES Logo|

.. |GEOPHIRES Logo| image:: geophires-logo.png
    :alt: GEOPHIRES Logo

GEOPHIRES is a free and open-source geothermal techno-economic simulator.
GEOPHIRES combines reservoir, wellbore, surface plant, and economic models to estimate the capital and operation and maintenance costs,
instantaneous and lifetime energy production, and overall levelized cost of energy of a geothermal plant.
Various reservoir conditions (EGS, doublets, etc.) and end-use options (electricity, direct-use heat, cogeneration) can be modeled.
Users are encouraged to build upon to the GEOPHIRES framework to implement their own correlations and models.
See the `Documentation`_ section below for more information.

This repository is the canonical source for the modern GEOPHIRES simulator, which succeeds the legacy `GEOPHIRES v2.0 `__.
The name GEOPHIRES-X refers to the initial modernized (v3) framework.
See the `CHANGELOG `__ for a detailed history of changes and release notes.

Free software: `MIT license `__

.. start-badges

.. list-table::
    :stub-columns: 1

    * - tests
      - | |github-actions|
        | |coverage|
    * - package
      - | |commits-since|
        | |code-style|
        | |license|

.. TODO add the following to package badge list once PyPy distribution enabled: |version| |wheel| |supported-versions| |supported-implementations|
..    * - docs
..      - | |docs|


.. |github-actions| image:: https://github.com/NREL/GEOPHIRES-X/actions/workflows/github-actions.yml/badge.svg
    :alt: GitHub Actions Build Status
    :target: https://github.com/NREL/GEOPHIRES-X/actions

.. |version| image:: https://img.shields.io/pypi/v/geophires-x.svg
    :alt: PyPI Package latest release
    :target: https://pypi.org/project/geophires-x

.. |wheel| image:: https://img.shields.io/pypi/wheel/geophires-x.svg
    :alt: PyPI Wheel
    :target: https://pypi.org/project/geophires-x

.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/geophires-x.svg
    :alt: Supported versions
    :target: https://pypi.org/project/geophires-x

.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/geophires-x.svg
    :alt: Supported implementations
    :target: https://pypi.org/project/geophires-x

.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/GEOPHIRES-X/v3.9.29.svg
    :alt: Commits since latest release
    :target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.9.29...main

.. |docs| image:: https://readthedocs.org/projects/GEOPHIRES-X/badge/?style=flat
    :target: https://nrel.github.io/GEOPHIRES-X
    :alt: Documentation Status

.. |coverage| image:: https://coveralls.io/repos/github/NREL/GEOPHIRES-X/badge.svg?branch=main
    :target: https://coveralls.io/github/NREL/GEOPHIRES-X?branch=main
    :alt: Coverage Status

.. |code-style| image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/NREL/GEOPHIRES-X/blob/main/.pre-commit-config.yaml
    :alt: Code Style: black

.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg
    :target: https://github.com/NREL/GEOPHIRES-X/blob/main/LICENSE
    :alt: MIT license

.. end-badges

Getting Started
===============

A web interface is available at `gtp.scientificwebservices.com/geophires `__.

To run GEOPHIRES locally or to modify the source code, see the `Getting Started Guide `__.


Documentation
=============

GEOPHIRES combines reservoir, wellbore, surface plant, and economic and cost models
and correlations to estimate the capital and operation and maintenance costs,
instantaneous and lifetime energy production, and overall levelized cost of energy of a
geothermal plant.

The high-level software architecture is illustrated in the diagram below. Green, orange and blue rectangles
refer to internal GEOPHIRES components, external user-interface components, and
external reservoir simulators (TOUGH2), respectively. Rectangles with solid outline are
always executed during a simulation run; rectangles with dashed outline refer to optional
or user-provided components.

|GEOPHIRES Architecture Diagram|

.. |GEOPHIRES Architecture Diagram| image:: References/geophires-architecture-diagram_2024-11-20.png
    :alt: GEOPHIRES Architecture Diagram

GEOPHIRES has a variety of different reservoir models including
(1) Multiple parallel fractures model (Gringarten);
(2) 1-Dimensional linear heat sweep model;
(3) M/A thermal drawdown parameter model;
(4) Percentage temperature drawdown model;
(5) User-provided reservoir temperature production data;
(6) Coupling to TOUGH2 external reservoir simulator;
(7) SUTRA: Reservoir Thermal Energy Storage (RTES; also known as Underground Thermal Energy Storage - UTES);
(8) Slender Body Theory (SBT);
(9) Cylindrical.

GEOPHIRES can simulate three different end-uses of the geothermal heat: (1)
direct-use heat (e.g. for industrial processing heating or residential space heating);
(2) electricity (with subcritical ORC, supercritical ORC, single-flash, or double-flash plant);
(3) co-generation of heat and electricity. The co-generation option considers bottoming
cycle, topping cycle, and parallel cycle.

GEOPHIRES has 5 economic models to calculate the levelized cost of heat or
electricity: (1) fixed charge rate (FCR) model;
(2) standard discounting levelized cost model;
(3) BICYCLE model;
(4) CLGS;
(5) `SAM Single-owner PPA `__.

The capital and O&M costs for the different geothermal system components (exploration,
well drilling, surface plant, etc.) are either provided by the user or calculated with built-in
correlations.

For more information on the theoretical basis for GEOPHIRES see
`GEOPHIRES v2.0: updated geothermal techno‐economic simulation tool (Beckers & McCabe, 2019) `__
and `GEOPHIRES reference materials `__.

Parameters
----------

Available parameters are documented in the `Parameters Reference `__.

Note that many parameters are interrelated and/or conditionally dependent on one another;
reviewing the GEOPHIRES example(s) relevant to your use case in the following section
is strongly recommended to gain a working understanding of how to construct valid sets of input parameters.


Examples
--------

GEOPHIRES includes a variety of example input files demonstrating its features for different types of geothermal systems
and case studies of real-world geothermal projects.
Starting with an existing GEOPHIRES example that is similar to your intended use/application can be an easier approach to using GEOPHIRES than constructing your own inputs from scratch.

Example input ``.txt`` files and corresponding case report ``.out`` files are available in the `tests/examples directory `__ of the repository.
Example-specific web interface deeplinks are listed in the Link column.


.. list-table::
   :widths: 50 40 5 5
   :header-rows: 1

   * - Example
     - Input file
     - Case report file
     - Link
   * - Example 1: EGS Electricity
     - `example1.txt `__
     - `.out `__
     - `link `__
   * - Example 1 with Add-Ons
     - `example1_addons.txt `__
     - `.out `__
     - `link `__
   * - Example 2: EGS Direct-Use Heat
     - `example2.txt `__
     - `.out `__
     - `link `__
   * - Example 3: EGS Co-generation
     - `example3.txt `__
     - `.out `__
     - `link `__
   * - Example 4: Hydrothermal Electricity
     - `example4.txt `__
     - `.out `__
     - `link `__
   * - Example 5: User-Provided Reservoir Data
     - `example5.txt `__
     - `.out `__
     - `link `__
   * - Example 6: TOUGH2 (Multiple Gradients)
     - `example6.txt `__
     - `.out `__
     - \*
   * - Example 7: TOUGH2 (Single Gradient)
     - `example7.txt `__
     - `.out `__
     - \*
   * - Example 8: Cornell Direct-Use Heat
     - `example8.txt `__
     - `.out `__
     - `link `__
   * - Example 9: Cornell Electricity
     - `example9.txt `__
     - `.out `__
     - `link `__
   * - Example 10: Heat Pump
     - `example10_HP.txt `__
     - `.out `__
     - `link `__
   * - Example 11: Absorption Chiller
     - `example11_AC.txt `__
     - `.out `__
     - `link `__
   * - Example 12: District Heating
     - `example12_DH.txt `__
     - `.out `__
     - `link `__
   * - Example 13: Redrilling due to Drawdown
     - `example13.txt `__
     - `.out `__
     - `link `__
   * - CLGS: Coaxial sCO2: Heat
     - `Beckers_et_al_2023_Tabulated_Database_Coaxial_sCO2_heat.txt `__
     - `.out `__
     - `link `__
   * - CLGS: Coaxial Water: Heat
     - `Beckers_et_al_2023_Tabulated_Database_Coaxial_water_heat.txt `__
     - `.out `__
     - `link `__
   * - CLGS: Uloop sCO2: Electricity
     - `Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_elec.txt `__
     - `.out `__
     - `link `__
   * - CLGS: Uloop sCO2: Heat
     - `Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_heat.txt `__
     - `.out `__
     - `link `__
   * - CLGS: Uloop Water: Electricity
     - `Beckers_et_al_2023_Tabulated_Database_Uloop_water_elec.txt `__
     - `.out `__
     - `link `__
   * - CLGS: Uloop Water: Heat
     - `Beckers_et_al_2023_Tabulated_Database_Uloop_water_heat.txt `__
     - `.out `__
     - `link `__
   * - CLGS: SBT High Temperature
     - `example_SBT_Hi_T.txt `__
     - `.out `__
     - `link `__
   * - CLGS: SBT Low Temperature
     - `example_SBT_Lo_T.txt `__
     - `.out `__
     - `link `__
   * - SUTRA Example 1
     - `SUTRAExample1.txt `__
     - `.out `__
     - `link `__
   * - Multiple Gradients
     - `example_multiple_gradients.txt `__
     - `.out `__
     - `link `__
   * - Investment Tax Credit
     - `example_ITC.txt `__
     - `.out `__
     - `link `__
   * - Production Tax Credit
     - `example_PTC.txt `__
     - `.out `__
     - `link `__
   * - Fervo Project Red (2023)
     - `Fervo_Norbeck_Latimer_2023.txt `__
     - `.out `__
     - `link `__
   * - Fervo Cape Station 1: 2023 Results
     - `Fervo_Project_Cape.txt `__
     - `.out `__
     - `link `__
   * - Fervo Cape Station 2: 2024 Results
     - `Fervo_Project_Cape-2.txt `__
     - `.out `__
     - `link `__
   * - Fervo Cape Station 3: 400 MWe Production
     - `Fervo_Project_Cape-3.txt `__
     - `.out `__
     - `link `__
   * - Case Study: 500 MWe EGS Project Modeled on Fervo Cape Station (`documentation `__)
     - `Fervo_Project_Cape-4.txt `__
     - `.out `__
     - `link `__
   * - Superhot Rock (SHR) Example 1
     - `example_SHR-1.txt `__
     - `.out `__
     - `link `__
   * - Superhot Rock (SHR) Example 2
     - `example_SHR-2.txt `__
     - `.out `__
     - `link `__
   * - SAM Single Owner PPA: 50 MWe
     - `example_SAM-single-owner-PPA.txt `__
     - `.out `__
     - `link `__
   * - SAM Single Owner PPA: 400 MWe BICYCLE Comparison
     - `example_SAM-single-owner-PPA-2.txt `__
     - `.out `__
     - `link `__

.. raw:: html

   
      * TOUGH2 is not currently supported in the web interface. Comment on this tracking issue to request web interface support for TOUGH2.
   

Videos
------

`NREL GEOPHIRES Workshop: Features Overview & Examples `__

`NREL GEOPHIRES Workshop: Case Studies `__

HIP-RA: Heat in Place - Resource Assessment
-------------------------------------------

`HIP-RA-X README `__

`HIP-RA-X Parameters Reference `__

A HIP-RA web interface is available at `gtp.scientificwebservices.com/hip-ra `__.


Monte Carlo
-----------

`Monte Carlo User Guide `__

A Monte Carlo web interface is available at `gtp.scientificwebservices.com/monte-carlo `__.

Extending GEOPHIRES-X
---------------------
`How to extend GEOPHIRES-X `__ user guide

`Extension example: SUTRA `__


Additional Documentation
------------------------

Additional materials can be found in `/References `__.


Development
===========

If you are interested in sharing your extensions with others, or even contributing them back to this repository,
you may want to follow `the Development instructions `__.
(You can also create a fork after doing an editable install so don't worry about picking this method if you're unsure.)

.. TODO feedback section - why user feedback is important/valuable, how to file issues/contact authors

.. TODO FAQ/trivia section - "HDR" naming (HDR.out, HDR.json) is for Hot Dry Rock

        

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 1,814
Total Committers: 8
Avg Commits per committer: 226.75
Development Distribution Score (DDS): 0.09

Commits in past year: 830
Committers in past year: 4
Avg Commits per committer in past year: 207.5
Development Distribution Score (DDS) in past year: 0.034

Name Email Commits
softwareengineerprogrammer 4****r 1650
Malcolm Ross m****i@g****m 115
kfbeckers k****s@g****m 28
Jeff Bourdier j****r@g****m 14
Byron Pullutasig 1****a 3
Aimilia Dimitra Ktena t****3@a****r 2
natakokota t****0@a****r 1
mclarknrel 1****l 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 158
Total pull requests: 118
Average time to close issues: about 2 months
Average time to close pull requests: 3 days
Total issue authors: 10
Total pull request authors: 7
Average comments per issue: 1.4
Average comments per pull request: 0.64
Merged pull request: 98
Bot issues: 0
Bot pull requests: 0

Past year issues: 70
Past year pull requests: 53
Past year average time to close issues: about 2 months
Past year average time to close pull requests: 5 days
Past year issue authors: 8
Past year pull request authors: 4
Past year average comments per issue: 0.86
Past year average comments per pull request: 0.36
Past year merged pull request: 45
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/nrel/geophires-x

Top Issue Authors

  • softwareengineerprogrammer (133)
  • malcolm-dsider (10)
  • kfbeckers (8)
  • scotthess (1)
  • natakokota (1)
  • NicholasFry (1)
  • gimibei (1)
  • sws-jonathan (1)
  • geo-curious (1)
  • tb831637 (1)

Top Pull Request Authors

  • softwareengineerprogrammer (82)
  • malcolm-dsider (13)
  • kfbeckers (12)
  • jeffbourdier (6)
  • natakokota (2)
  • aimiktena (2)
  • bpulluta (1)

Top Issue Labels

  • enhancement (50)
  • bug (50)
  • question (15)
  • feature request (15)
  • documentation (14)
  • good first issue (5)
  • wontfix (3)
  • help wanted (1)
  • invalid (1)

Top Pull Request Labels

  • bug (19)
  • enhancement (12)
  • documentation (11)
  • feature request (3)

Package metadata

proxy.golang.org: github.com/nrel/geophires-x

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/nrel/geophires-x#section-documentation
  • Licenses: mit
  • Latest release: v3.9.29+incompatible (published 12 days ago)
  • Last Synced: 2025-07-13T20:02:37.071Z (1 day ago)
  • Versions: 138
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 5.395%
    • Average: 5.576%
    • Dependent repos count: 5.758%
proxy.golang.org: github.com/NREL/GEOPHIRES-X

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/NREL/GEOPHIRES-X#section-documentation
  • Licenses: mit
  • Latest release: v3.9.29+incompatible (published 12 days ago)
  • Last Synced: 2025-07-13T20:02:37.806Z (1 day ago)
  • Versions: 138
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 5.395%
    • Average: 5.576%
    • Dependent repos count: 5.758%

Score: -Infinity