Skip to content

Surface generator fix for diffusion#4061

Open
dkachuma wants to merge 5 commits into
developfrom
dkachuma/surface-generator-fpe
Open

Surface generator fix for diffusion#4061
dkachuma wants to merge 5 commits into
developfrom
dkachuma/surface-generator-fpe

Conversation

@dkachuma
Copy link
Copy Markdown
Contributor

@dkachuma dkachuma commented May 19, 2026

Fixes for the surface generator

  • Replaces a relative time tolerance check with an absolute timeTolerance (1.0e-14) during rupture rate calculations, which prevents calculation errors or exceptions when a simulation uses negative start times.
  • Adds logic to SurfaceGenerator::solverStep to retrieve the diffusion model and explicitly call initializeTemperatureState for the fracture subregions, ensuring properties like diffusivity and phase multipliers are correctly set up.

@dkachuma dkachuma self-assigned this May 19, 2026
@dkachuma dkachuma added type: bug Something isn't working ci: run CUDA builds Allows to triggers (costly) CUDA jobs flag: ready for review ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: no rebaseline Does not require rebaseline ci: run code coverage enables running of the code coverage CI jobs labels May 19, 2026
@dkachuma dkachuma marked this pull request as ready for review May 19, 2026 13:33
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes surface generation behavior when diffusion is enabled and improves robustness of rupture-rate calculations when simulations use negative start times.

Changes:

  • Initialize diffusion state for fracture subregions during SurfaceGenerator::solverStep by retrieving the diffusion constitutive model and calling initializeTemperatureState.
  • Replace a relative rupture-time tolerance check with an absolute timeTolerance to avoid divide-by-zero/invalid comparisons for negative rupture times.
  • Move DiffusionBase::initializeTemperatureState from an inline no-op to a real implementation, and add a ConstantDiffusion override to initialize diffusivity state.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp Initializes diffusion state for fracture subregions and uses an absolute time tolerance in rupture-rate computation.
src/coreComponents/constitutive/diffusion/DiffusionBase.hpp Changes initializeTemperatureState from inline no-op to out-of-line virtual API.
src/coreComponents/constitutive/diffusion/DiffusionBase.cpp Implements DiffusionBase::initializeTemperatureState to initialize phase diffusivity multipliers.
src/coreComponents/constitutive/diffusion/ConstantDiffusion.hpp Declares an override for initializeTemperatureState.
src/coreComponents/constitutive/diffusion/ConstantDiffusion.cpp Implements the override to initialize constant diffusivity values (and base multipliers).

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

Labels

ci: run code coverage enables running of the code coverage CI jobs ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: no rebaseline Does not require rebaseline flag: ready for review type: bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants