Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@softwareengineerprogrammer
Copy link
Owner

@softwareengineerprogrammer softwareengineerprogrammer commented Nov 4, 2025

Adapted from https://github.com/SHerrboldt/GEOPHIRES-X/tree/TOUGH-updates


Instructions for @SHerrboldt:

  1. Sync https://github.com/SHerrboldt/GEOPHIRES-X with parent repo: image
  2. On your local machine:
    1. Ensure any work-in-progress you currently have on your branch is committed (and pushing doesn't hurt either); in other words make sure you don't lose any work in subsequent steps
    2. git checkout main
    3. git pull
    4. git remote add softwareengineerprogrammer [email protected]:softwareengineerprogrammer/GEOPHIRES.git
    5. git fetch softwareengineerprogrammer
    6. git checkout softwareengineerprogrammer/softwareengineerprogrammer_sherrboldt_tough-updates
    7. git checkout -b TOUGH-updates-2
    8. git push -u <your remote, possibly fork or SHerrboldt> TOUGH-updates-2
  3. Run locally, ensure it works for your use case(s), commit as needed, etc.
  4. git push and then create PR from SHerrboldt/TOUGH-updates-2 to SHerrboldt/main, then notify @softwareengineerprogrammer (me).

SHerrboldt and others added 28 commits February 19, 2025 14:45
…rid of errors. Ran into an error when reading FOFT files, possibly an issue on TOUGH's end.
… size to 5 or reservoirthickness/5, this is more inline with the original. Was calculating PI/II in kg/s/kPa when it should be kg/s/bar. In WellBores.py, "def get_hydrostatic_pressure_kPa" used the parameter "gradient_C_per_km" when the actual float value was in C/m. Changed parameter "gradient_C_per_km" to "gradient_C_per_m".
@softwareengineerprogrammer softwareengineerprogrammer changed the title Softwareengineerprogrammer sherrboldt tough updates Sherrboldt/TOUGH-updates Nov 4, 2025
Tsurf_degC: float,
depth_m: float,
gradient_C_per_km: float,
gradient_C_per_m: float, # converted from C/km to C/m
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: verify

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: Probable bug in overpressure

Comment on lines +50 to +59
self.injection_cell = self.ParameterDict[self.injection_cell.Name] = strParameter(
"Vertical Injection Well Cell ID",
DefaultValue='A3Q23',
UnitType=Units.NONE,
)
self.production_cell = self.ParameterDict[self.production_cell.Name] = strParameter(
"Vertical Production Well Cell ID",
DefaultValue='A3Q28',
UnitType=Units.NONE,
)
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: tooltip texts

Comment on lines +72 to +130
self.hrz_inj1 = self.ParameterDict[self.hrz_inj1.Name] = strParameter(
"Horizontal Injection Well Cell ID 1",
DefaultValue='A3R23',
UnitType=Units.NONE,
)
self.hrz_inj2 = self.ParameterDict[self.hrz_inj2.Name] = strParameter(
"Horizontal Injection Well Cell ID 2",
DefaultValue='A3S23',
UnitType=Units.NONE,
)
self.hrz_inj3 = self.ParameterDict[self.hrz_inj3.Name] = strParameter(
"Horizontal Injection Well Cell ID 3",
DefaultValue='A3T23',
UnitType=Units.NONE,
)
self.hrz_inj4 = self.ParameterDict[self.hrz_inj4.Name] = strParameter(
"Horizontal Injection Well Cell ID 4",
DefaultValue='A3U23',
UnitType=Units.NONE,
)
self.hrz_inj5 = self.ParameterDict[self.hrz_inj5.Name] = strParameter(
"Horizontal Injection Well Cell ID 5",
DefaultValue='A3V23',
UnitType=Units.NONE,
)
self.numhprodcell = self.ParameterDict[self.numhprodcell.Name] = intParameter(
"Number of Horizontal Production Well Cells",
DefaultValue=0,
AllowableRange=[0, 1, 2, 3, 4, 5],
UnitType=Units.NONE,
Required=True,
ErrMessage="Assume no horizontal production well",
ToolTipText="Number of cells assumed as horizontal production wells"
)
self.hrz_prod1 = self.ParameterDict[self.hrz_prod1.Name] = strParameter(
"Horizontal Production Well Cell ID 1",
DefaultValue='A3R28',
UnitType=Units.NONE,
)
self.hrz_prod2 = self.ParameterDict[self.hrz_prod2.Name] = strParameter(
"Horizontal Production Well Cell ID 2",
DefaultValue='A3S28',
UnitType=Units.NONE,
)
self.hrz_prod3 = self.ParameterDict[self.hrz_prod3.Name] = strParameter(
"Horizontal Production Well Cell ID 3",
DefaultValue='A3T28',
UnitType=Units.NONE,
)
self.hrz_prod4 = self.ParameterDict[self.hrz_prod4.Name] = strParameter(
"Horizontal Production Well Cell ID 4",
DefaultValue='A3U28',
UnitType=Units.NONE,
)
self.hrz_prod5 = self.ParameterDict[self.hrz_prod5.Name] = strParameter(
"Horizontal Production Well Cell ID 5",
DefaultValue='A3V28',
UnitType=Units.NONE,
)
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: tooltip texts

Comment on lines +263 to +276
print('Reservoir parameters passed to TOUGH from Reservoir.py \n')
print("Initial Temperature = ", initialtemp)
print("Rock Density = ", rockdensity)
print("Roch Heat Capacity = ", rockheatcap)
print("Rock Permeability = ", rockperm)
print("Rock Porosity = ", rockpor)
print("Rock Thermal Conductivity = ", rockthermalcond)
print("Reservoir Thickness = ", reservoirthickness)
print("Reservoir Width = ", reservoirwidth)
print("Well Separation = ", wellseperation)
print("Grid X = ", DeltaXgrid)
print("Grid Y = ", DeltaYgrid)
print("Grid Z = ", DeltaZgrid)
print("")
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: should be log statements instead of prints

Comment on lines -211 to +369
outfile = str('tough2output.out')
outfile = str('Doublet.out')
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: probably arbitrary and should be reverted, but might be TOUGH2 vs. TOUGH3 naming change requiring parameterization/conditionalization

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High-level tasks (in addition to comments):

  1. Verify existing example5/example6 cases pass (and haven't been backwards-incompatibly broken)
  2. Review parameterization schema to ensure it's appropriately generic (e.g. single production/injection cell IDs, 6 horizontals, etc.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants