NREL / GEOPHIRES-X

MIT License
26 stars 21 forks source link

AGS fails at depths >5km #125

Open softwareengineerprogrammer opened 4 months ago

softwareengineerprogrammer commented 4 months ago

Repro input/screenshot:

Starting Electricity Sale Price, 0.09
Ending Electricity Sale Price, 0.15
Electricity Escalation Start Year, 5
Electricity Escalation Rate Per Year, 0.012
Annual License Etc, 0
Flat License Etc, 0
Tax Relief Per Year, 2.212
Reservoir Model, 1
Reservoir Depth, 9
Number of Segments, 1
Gradient 1, 50
Maximum Temperature, 500
Number of Production Wells, 2
Number of Injection Wells, 2
Production Well Diameter, 7
Injection Well Diameter, 7
Ramey Production Wellbore Model, 1
Production Wellbore Temperature Drop, .5
Injection Wellbore Temperature Gain, 0
Production Flow Rate per Well, 55
Fracture Shape, 3
Fracture Height, 900
Reservoir Volume Option, 3
Reservoir Volume, 1000000000
Number of Fractures, 20
Water Loss Fraction, .02
Productivity Index, 5
Injectivity Index, 5
Injection Temperature, 50
Maximum Drawdown, 1
Reservoir Heat Capacity, 1000
Reservoir Density, 2700
Reservoir Thermal Conductivity, 2.7
End-Use Option, 1
Economic Model, 1
Power Plant Type, 3
Circulation Pump Efficiency, .8
Utilization Factor, .9
Surface Temperature, 20
Ambient Temperature, 20
Plant Lifetime, 30
Fixed Charge Rate, .05
Inflation Rate During Construction, 0
Print Output to Console, 1
Time steps per year, 6
Well Drilling and Completion Capital Cost, 40
Screenshot 2024-02-16 at 11 18 56

Scratch unit test to add:

    def test_clgs_depth_greater_than_5km(self):
        input_content = """Is AGS, True
Closed-loop Configuration, 1
End-Use Option, 1
Heat Transfer Fluid, 2
Number of Production Wells, 1
Number of Injection Wells, 0
All-in Vertical Drilling Costs, 1000.0
All-in Nonvertical Drilling Costs, 1000.0
Production Flow Rate per Well, 40
Cylindrical Reservoir Input Depth, 5001.0 meter
Gradient 1, 60.0
Total Nonvertical Length, 9000
Production Well Diameter, 8.5
Injection Temperature, 60.0
Plant Lifetime, 40
Ambient Temperature, 20
Electricity Rate, 0.10
Circulation Pump Efficiency, 0.8
CO2 Turbine Outlet Pressure, 200
Economic Model, 4
Reservoir Stimulation Capital Cost, 0
Exploration Capital Cost, 0
Print Output to Console, 1"""
        input_file = Path(tempfile.gettempdir(), f'{uuid.uuid4()!s}.txt')
        with open(input_file,'w') as f:
            f.write(input_content)

        client = GeophiresXClient()
        result = client.get_geophires_result(GeophiresInputParameters(from_file_path=input_file))
        self.assertIsNotNone(result)
softwareengineerprogrammer commented 3 months ago

Possibly related to https://github.com/NREL/GEOPHIRES-X/issues/13; assigned to @kfbeckers.