wells: per-connection fracture data containers and reporting - #7311
Draft
hnil wants to merge 2 commits into
Draft
Conversation
Add ConnFractureData<Scalar> (area, flux, height, length, WI, volume, filter volume, average widths, injection pressure/bhp/rate, water rate per connection) mirroring ConnFiltrateData, carried in PerfData and serialized with it. Extend ConnFiltrateData with flow_factor and fracture_rate, SingleWellState with the fracture-routed rate (frac_rate), and let WellState::reportConnections fill the corresponding data::Wells vectors (ConnectionFracture, Rates::opt::wat_frac, filtrate flow factor and fracture rate) that opm-common already publishes as summary vectors (WWIRFRAC/CWIRFRAC etc.). Purely additive: containers are empty/zero-sized unless a fracture model populates them; no behavior change otherwise. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
prepareInjectorContainers() sized 13 vectors per injector connection on every run. Nothing writes them without a fracture model, so leave them unsized and let reporting skip a well that has none. Co-Authored-By: Claude Opus 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.
First of the geomech fracture series (
UPSTREAM_PR_PLAN.mditem 3.1). State and reporting only — nothing in this PR writes any of it.Adds
ConnFractureData<Scalar>(area, flux, height, length, WI, volume, filter volume, average widths, injection pressure/bhp/rate, water rate, per connection) mirroringConnFiltrateData, carried inPerfDataand serialized with it. ExtendsConnFiltrateDatawithflow_factorandfracture_rate,SingleWellStatewith the fracture-routed rate, and letsWellState::reportConnectionsfill thedata::Wellsfields opm-common already publishes as summary vectors (ConnectionFracture,Rates::opt::wat_frac,WWIRFRAC/CWIRFRAC).All values stay zero without a fracture model, so no result changes.
One thing worth stating rather than leaving to be discovered: the containers are allocated, not merely declared.
PerfData::prepareInjectorContainers()resizes them, so an injector well gets 13 morestd::vector<Scalar>sized by its connection count — alongside the four the filter-cake machinery already allocates there. Producers are unaffected. It is a modest cost and it follows the existing pattern, but if reviewers would rather it were gated onrunspec.mech()that is an easy change.PerfData's existing round-trip test covers the new member:PerfData::serializationTestObject()populates it viaConnFractureData::serializationTestObject().