Skip to content

feat well debug - #4143

Draft
tjb-ltk wants to merge 15 commits into
feature/byer3/geos_well_debugfrom
develop
Draft

tjb-ltk wants to merge 15 commits into
feature/byer3/geos_well_debugfrom
develop

Conversation

@tjb-ltk

@tjb-ltk tjb-ltk commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

No description provided.

joshua-white and others added 14 commits August 19, 2026 14:06
* Re-enable GCP upload flag

* Improve log readibility for users

* Modify log section nesting

* Make UPLOAD_TO_GCP conditional on PR and fork status
* Correct sign convention + hardcoded constitutive
* Add missing A^bp coupling term

---------

Co-authored-by: Jian Huang <53012159+jhuang2601@users.noreply.github.com>
Co-authored-by: Jacques Franc <49998870+jafranc@users.noreply.github.com>
* Support RAJA suite 2026 TPLs
* Add ROCm GEOS CI job
* Fix CUDA build with new TPLs
* Use shared device CI label
* Run Uncrustify on GEOS sources
* Remove DIY warning workaround
* Fix C++20 Clang CI builds
* Fix device test builds
* Fix CUDA event test
* Fix Clang warning compatibility
* Handle GCC 12 VTK warning
* Update TPL image and LvArray
* Fix CMake target warnings
* Fix VTK CI issues
* Fix VTK multiblock mesh loading
* Rebaseline
* Fix leaks found by sanitizer integrated tests
* Adapt hypre fixes to tpls-next
* Fix CI HypreDrive configuration
* Keep Hypredrive opt-in on tpls-next
* Fix Hypre legacy Krylov vector tags
* Fix CUDA build of Hypre regression test
* Apply CUDA compatibility source patches
* Update LC TPLs
* Add MGR strategy for SinglePhasePoromechanicsConformingFracturesALM
* Add MGR strategy bridge via hypredrive
* Fix bug in the fully coupled ALM + single-phase sparsity construction
  - The mechanics solver replaced the existing flow sparsity pattern, discarding flow and custom FIM couplings.
  - Pressure–bubble couplings checked for the nonexistent wrapper bubbleElementsList instead of the registered bubbleCells key.
 - Fixed both by unioning the flow and mechanics patterns before adding FIM couplings, and by using the correct wrapper key
* Complete the ALM conforming-fractures single-phase poromechanics solver
- Replace the solver's setupSystem override with a setSparsityPattern hook, and
  build the coupled pattern as the exact union of the flow and mechanics
  patterns in one resizeFromRowCapacities pass.
- Assemble the well and perforation blocks for the reservoir-and-wells
  instantiation, which previously left every well row empty.
- Give dR/dAperture per-mesh-body row offsets, threaded to the flow solver
  through assembleHydrofracFluxTerms, so several mesh bodies no longer share a
  single row space.
- Add the singlePhasePoromechanicsConformingFracturesALMReservoirFVM MGR
  strategy, which eliminates the well block on a third level rather than leaving
  well rate and BHP rows in the coarse grid.
- Restrict the well-free ALM MGR strategy to exactly three fields, and reject
  thermal input, which the single-component fracture assembly cannot represent.
- Supply rigid-body modes as the near-null space when hypredrive drives the
  solve, emitting one set of six vectors per mesh body.
- Reject multi-target setups in HydrofractureSolver and
  PoromechanicsConformingFractures, whose dR/dAperture indexing carries no
  per-mesh offset and silently aliased rows.
- Move dR/dAperture between host and device without touching it, so the
  immutable sparsity structure is not re-uploaded every Newton iteration.
- Collapse assembleHydrofracFluxTerms to a single virtual carrying the row
  offsets, removing the mutually forwarding seven- and eight-argument overloads.
- Extract appendSparsityPattern into linearAlgebra/utilities and use it for the
  five duplicated row-copy loops; move MGR block counting into MGRStrategyBase.
- Fix is_formattable_v under C++20, where probing with std::format reports every
  type as formattable, and add the formatter static_asserts back to LogPart and
  TableData.
- Merge the exact and coordinate-based 2D-to-3D neighbour lists in VTKUtilities
  instead of letting the coordinate result overwrite the exact one.

---------

Co-authored-by: jacques franc <jacquesfrancdev@gmail.com>
* Add kernelSpec.json
* Add relative permeability template
* Add hysteresis check
* Correct embedded documentation typos in kernelSpecs.json (#4086)
* Fix typos in kernelSpecs embedded docs
* Add 1D cooling tutorial to doc
* wordsmithing the example rest
* update wellbore thermal tutorials

---------

Co-authored-by: Jian Huang <53012159+jhuang2601@users.noreply.github.com>
Co-authored-by: Herve Gross <40979822+herve-gross@users.noreply.github.com>
* PhaseFieldFractureSolver, PhaseFieldPoromechanicsSolver, and PhaseFieldDamageFEM cleanup
* added a check for nucleation model to see if the dissipation option is linear
* move localDissipationoption to constitutive model and added FractureModelType option
* updated xmls
* renamed sed to crackDrivingForce
* apply Damage default field values after array allocation
* refactored and added spectral/vol-dev split test decks for all fracture-model types
* fix save history of crack driving force
* enabled multi-region run with certain defined regions have no damage dof
* register nodal damage as a field trait instead of an XML fieldName
* Add phase-field benchmark
* add viscous regularization
* removed fieldName in benchmarks, updated schemas
* use internal meshes for single notch examples and stop tracking lfs
* removed useless coeffField and call setConstitutiveNamesCallSuper
* Error out on unimplemented ExplicitTransient time integration
* moved fine mesh files to GEOSDATA, created coarse meshes for integrated tests
* fix a bug to save the crack driving force history also on the host
* rebaseline
* make the fracture model type and dissipation option clear in examples
* merged damage interpolation kernels
…4083)

* fix tetra scaling
* rough dispatch
* restore anisotropic box scaling
* wording style
* rebaseline

---------

Co-authored-by: Jian HUANG <jian.huang@totalenergies.com>
Co-authored-by: Jian Huang <53012159+jhuang2601@users.noreply.github.com>
* Removed phasePVTParaFiles and flashModelParaFile from CO2-Brine fluid models.
* Replaced parameter files with direct XML configuration.
* Added XML fields for pressure and temperature coordinates and intervals.
* All properties now use the same pressure and temperature discretization points.
* Pressure and temperature points can be explicitly listed for nonuniform spacing.
* Added salinity configuration, defaulting to 0.
* Added Ezrokhi density and viscosity coefficients, defaulting to 0.
* Added selectable solubility models: DuanSun by default, SpycherPruess, or Tables.
* Added support for externally generated solubility tables through solubilityTables.
* Introduced BrineFluidParameters to pass structured parameters when creating PVT models.
* Updated integrated tests and CO2-Brine documentation.
* Some simulation results changed because all property tables now share common ranges and points.
* This is a breaking change requiring input model updates. Migration instructions are available in issue #4022.

---------

Co-authored-by: Jian Huang <53012159+jhuang2601@users.noreply.github.com>
Co-authored-by: Jian HUANG <jian.huang@totalenergies.com>
* Add computeM to construct the primal mimetic inner-product matrix needed by the mixed saddle-point formulation.
* Implement computeM for TPFAInnerProduct, QuasiTPFAInnerProduct, BdVLMInnerProduct, and SimpleInnerProduct.
* Factor shared geometry/consistency computations into reusable mimetic inner-product helper routines.
* Update polyhedron centroid computation to be consistent with exact volume integration for planar polygonal facets.
* Add/extend unit tests for the new inner-product matrices, including consistency checks such as BdVLM reducing to TPFA on hexahedral cells.
* Clean up geometry variable naming and add documentation for the new computeM interfaces.
* Rebaseline integrated tests due to the corrected centroid computation.

---------

Co-authored-by: Nicola Castelletto <castelletto1@llnl.gov>
Co-authored-by: Omar Duran <oduran@stanford.edu>
Co-authored-by: Omar Duran <omaryesiduran@gmail.com>
* fix numdof for shutwell matrix assembly (singlephase only issue)
* add missing perforation contribution to well system when solving well only system (singlephase only issue)
* better method names for shut seg/well
* Add missing header
* review changes
* clean up single and multiphase var registration
* remove unnecessary template param

---------

Co-authored-by: Victor A. P. Magri <paludettomag1@llnl.gov>
Co-authored-by: Jian Huang <53012159+jhuang2601@users.noreply.github.com>
* Add comprehensive documentation for compositional multiphase fluid models.
* Document phase-split and flash calculations, including negative flash, K-value flash, immiscible-water flash, and equations of state.
* Document compositional-fluid density, viscosity, and enthalpy models.
* Add documentation for unit conversions, mass/molar variable handling, implemented models, and scientific references.
* Replace the older CompositionalTwoPhaseFluid documentation with the more general CompositionalMultiphaseFluid documentation structure.
* Update the fluid-model documentation index and related PVT driver documentation to reference the new compositional documentation.
* Update the RST documentation-generation script to explicitly write files using UTF-8 encoding.

---------

Co-authored-by: Jian Huang <53012159+jhuang2601@users.noreply.github.com>
* Add hypre/hypredrive regression tests covering most MGR strategies
* Compare hypredrive and legacy hypre paths against common baselines
* Add iteration-count parity checks to detect solver quality regressions
* Add CI support for hypredrive and forced-legacy test passes
* Add warnings and unit tests for hypredrive fallback and numerical equivalence
* Fix hypredrive solver integration and configuration inconsistencies
* Make ILU configuration consistent between legacy hypre and hypredrive paths
* Fix MGR configurations for hybrid-FVM and reservoir solver strategies
* Add ILU F-relaxation support for MGR
* Fix issues uncovered by the expanded solver test coverage and update documentation/baselines
@tjb-ltk
tjb-ltk marked this pull request as draft September 14, 2026 21:26
* Corrected Python extension suffixes on macOS.
* Replaced nested-array regex validation with LvArray parsing.
* Updated Hypredrive expectation.
* Added macOS-specific skips for unsupported signal-handler and MathPresso JIT tests.
* Fixed formatting checks.
* update LC hostconfigs
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.

8 participants