geophires-x

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

https://github.com/nrel/geophires-x

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: NREL
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 150 MB
Statistics
  • Stars: 43
  • Watchers: 6
  • Forks: 34
  • Open Issues: 68
  • Releases: 0
Created almost 3 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Contributing License Authors

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.50.svg
    :alt: Commits since latest release
    :target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.9.50...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 `__
   * - SAM Single Owner PPA: 50 MWe with Add-on
     - `example_SAM-single-owner-PPA-3.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

  • Name: National Renewable Energy Laboratory
  • Login: NREL
  • Kind: organization
  • Location: Golden, CO

GitHub Events

Total
  • Create event: 27
  • Commit comment event: 2
  • Issues event: 72
  • Watch event: 9
  • Delete event: 1
  • Member event: 2
  • Issue comment event: 60
  • Push event: 39
  • Pull request review comment event: 46
  • Pull request event: 79
  • Pull request review event: 90
  • Fork event: 12
Last Year
  • Create event: 27
  • Commit comment event: 2
  • Issues event: 72
  • Watch event: 9
  • Delete event: 1
  • Member event: 2
  • Issue comment event: 60
  • Push event: 39
  • Pull request review comment event: 46
  • Pull request event: 79
  • Pull request review event: 90
  • Fork event: 12

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 1,993
  • Total Committers: 8
  • Avg Commits per committer: 249.125
  • Development Distribution Score (DDS): 0.083
Past Year
  • Commits: 984
  • Committers: 3
  • Avg Commits per committer: 328.0
  • Development Distribution Score (DDS): 0.028
Top Committers
Name Email Commits
softwareengineerprogrammer 4****r 1,828
Malcolm Ross m****i@g****m 115
kfbeckers k****s@g****m 28
Jeff Bourdier j****r@g****m 15
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 (Top 20 + Academic)
aueb.gr: 2

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 182
  • Total pull requests: 228
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 11
  • Total pull request authors: 8
  • Average comments per issue: 0.86
  • Average comments per pull request: 0.55
  • Merged pull requests: 170
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 56
  • Pull requests: 97
  • Average time to close issues: 22 days
  • Average time to close pull requests: 3 days
  • Issue authors: 5
  • Pull request authors: 2
  • Average comments per issue: 0.45
  • Average comments per pull request: 0.29
  • Merged pull requests: 72
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • softwareengineerprogrammer (151)
  • malcolm-dsider (13)
  • kfbeckers (9)
  • geo-curious (2)
  • huhanyu (1)
  • scotthess (1)
  • natakokota (1)
  • NicholasFry (1)
  • gimibei (1)
  • sws-jonathan (1)
  • tb831637 (1)
Pull Request Authors
  • softwareengineerprogrammer (163)
  • malcolm-dsider (26)
  • kfbeckers (15)
  • jeffbourdier (13)
  • natakokota (4)
  • aimiktena (4)
  • bpulluta (2)
  • huhanyu (1)
Top Labels
Issue Labels
bug (56) enhancement (54) question (11) documentation (11) feature request (8) good first issue (6) wontfix (3) invalid (2) help wanted (1)
Pull Request Labels
bug (37) enhancement (33) documentation (18) feature request (6)

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 302
proxy.golang.org: github.com/NREL/GEOPHIRES-X
  • Versions: 151
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 10 months ago
proxy.golang.org: github.com/nrel/geophires-x
  • Versions: 151
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 10 months ago