Repository navigation
High-enthalpy example case - #60
Merged
Merged
Conversation
Zero fluid volume in the grout cells made the well CNV criterion (normalized by pore volume) sensitive to round-off in the well solve, causing many extra Newton iterations with JutulDarcy 0.4. Use 1e-3 of the grout volume, consistent with the U1 closed-loop well. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JutulDarcy 0.4 takes the number of components in the compositional flux from the equation of state, which H2OSystem does not have. Overload component_mass_fluxes! for GeothermalModel until this is handled upstream. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Only add wells that are active in the schedule, since fluid can flow along the wellbore of a shut well. A natural-state case (num_years = 0) has no wells, and the new initial_state keyword allows restarting a production case from the natural state. - Use a tensor grid with uniform fine cells around the intrusion and geometric grading towards the boundaries, retaining the number of cells given by dims. The cap rock gets its own uniform cell layers (cap_cells). - Demo: simulate the natural state without wells, restart the production scenarios with wells and yearly report steps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Refine the mesh vertically from the base of the cap rock to the bottom of the intrusion, with zero refinement margin by default. - Choose the number of cap-rock layers automatically, such that cap-rock cells are approximately as large as the refined cells. - Place the injector just above the intrusion by default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a dh_max_abs keyword to set_reservoir_variable_defaults! for geothermal (H2OSystem) models, which limits the absolute change in enthalpy per Newton iteration. It is not limited by default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JutulDarcy main changed the signature of compositional_fluxes! and moved diffusion to a separate term. Pure H2O has a single component, so no diffusive flux is added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The update to Jutul 0.5 and JutulDarcy 0.4 reintroduced 1.11 lower bounds for LazyArtifacts, LinearAlgebra and Statistics, which are not compatible with the julia = "1.10" bound from #59. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The steam tables script in examples/pvt requires CoolProp and is not meant to be built as a documentation page. Update its usage notes after it was moved from scripts/, which also removed its Project.toml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A junction point between two well sections can lie exactly on a cell face, since the mesh is built from the trajectory points. Since Jutul 0.5.3, find_enclosing_cells only returns cells where the trajectory has positive length, so the connected sections may not share a cell at the junction. Fall back to the cell of the other section with centroid closest to the junction point. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nolebase/vitepress-plugin-enhanced-readabilities and @nolebase/ui 2.21 require VitePress 2, which broke npm install in the docs build. Pin both to 2.18.2, as in JutulDarcy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new "magmatic intrusion" geothermal case, improves the handling and documentation of pure-water steam tables, and makes several refinements to well modeling and documentation. The most significant changes are the addition of a high-enthalpy geothermal system example, updates to the steam tables artifact and generation scripts, and improved handling of closed-loop wells.
New magmatic intrusion geothermal system:
magmatic_intrusion_demo.jlthat demonstrates simulation of a high-enthalpy geothermal reservoir heated by a magmatic intrusion, including both natural-state evolution and production scenarios with and without reinjection. (examples/production/magmatic_intrusion_demo.jl)magmatic_intrusioncase in the public API and included it in the list of available cases and documentation. (src/Fimbul.jl,docs/src/man/cases/cases.md,src/cases/cases.jl) [1] [2] [3]Steam tables and artifacts:
SteamTablesH2Oartifact to a new version with improved phase labeling for supercritical states, ensuring continuity across the critical pressure and avoiding spurious two-phase regions. (Artifacts.toml,ext/FimbulCoolPropExt/steam_tables.jl) [1] [2]examples/pvt/build_steam_tables.jl)Closed-loop well handling:
src/cases/btes.jl,src/cases/ags.jl,src/cases/coaxial_bhe.jl) [1] [2] [3]Documentation and utility improvements:
docs/src/refs.bib)docs/make.jl)examples/production/coaxial_bhe_demo.jl) [1] [2]ext/FimbulCoolPropExt/steam_tables.jl)