GithubHelp home page GithubHelp logo

duggalrohi / flowdistribution Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pranayasai/flowdistribution

0.0 0.0 0.0 133 KB

It allows your to evaluate fluid flow distribution in a multi-fractured doublet (EGS) Enhanced Geothermal System model.

Jupyter Notebook 100.00%

flowdistribution's Introduction

FlowDistribution

The model allows to evaluate fluid flow distribution in a multi-fractured doublet Enhanced Geothermal System (EGS).

Description

Version 3.0.1
Title: Flow Distribution in a Doublet EGS
Authors: Pranay Asai (UoU) & Robert Podgorney (INL)
Edited by: Pranay Asai
Manuscript: https://doi.org/10.1016/j.renene.2022.05.079
Date: 05/19/2022

Heat extraction from an enhanced geothermal system seems simple but is a complicated process. The EGS usually consists of two wells spaced sufficiently apart and connected by several flow paths or fractures. To ensure the system is operated at its highest potential, all the fractures must be utilized efficiently. But this poses a challenge as the fluid always chooses the path of least resistance which leads to uneven flow distribution in all the fractures. This study focuses on the key parameters that would optimize the well designs, allowing to develop a system with the least number of moving parts installed underground to give the desired flow distribution. An analytical model is developed based the Kirchhoff's voltage law to calculate the pressure drops between any two points. An initial flowrate is fed into the model, and depending on the flow rates and conduit size, the model uses different fluid flow and frictional loss equations to calculate the pressure drop at each node. Then the model calculates the new flowrate by solving the set if equations implicitly, for the next timestep. This process is continued until convergence is achieved.

Rules/Assumptions

  1. Fluid flows from high pressure zone to low pressure zone.
  2. Gravity is not included.
  3. Constant density and viscosity is used (Isothermal).
  4. Fractures are rectangular and Darcy's law used to solve for pressure drop.
  5. Frictional pressure drop is calculated using various flow equations depending on the Reynolds number.
  6. All the fractures are identical and have same width (calculated using cubic law).

How to use it

1. Download both the files and make sure they are in the same folder.
2. Open the files in Jupyter Lab
3. Add path(windows or macOS) to save the output.
4. Input all the parameters the Fracture, Pipe (wellbore) and Perforations (all the values in SI units).
5. All variables are initalized
6. Input flowrate and injection pressure
7. CONTROL variables would help to run a specific scenario.
    7.1.  Turn on pressure drop in Wells
      7.1.1.  If 1, the pressure drop in the Injection well is on.
      7.1.2.  If 1, the pressure drop in the Production well is on.
    7.2.  Activate Perforations
      7.2.1.  If 0, Production perforation pressure drop is zero.
      7.2.2.  If 0, Injection perforation pressure drop is zero.
    7.3.  Permeability of Fracture
      7.3.1.  If 0, All fractures have same permeability.
      7.3.2.  If 1, The permeability values are assigned at random with respect to the base value.
                The permeabilities are assigned at random using two random values. The first value is the base and the second is the magnitude.
                Permeability=var1*BasePermeability*(10^var2)
      9.3.3.  If 2, Option to input custom permeability values.
                Input custom values for all the fractures.
    7.4.  Well Orientations
      7.4.1.  If 1, The wells are Parallel
      7.4.2.  If 2, The wells are Anti-Parallel
      7.4.3.  If 3, The wells are Non-Parallel
        7.4.3.1.  Input the Difference between first and last fracture
    7.5. Adaptive Perforations (This is still in the test phase and not fully developed)
      7.5.1.  If 0, Adaptive Perforations are turned off
      7.5.2.  If 1, Adaptive Perforations are turned on
      7.5.3.  If 2, Custom input for Perforations
 8. The setup of control variables would give the output for the desired scenario.
 

flowdistribution's People

Contributors

pranayasai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.