Skip to content

feat: Enabling THM coupling for ALM by fitting it as LM in the Poromechanics hierarchy - #4101

Open
jafranc wants to merge 35 commits into
developfrom
jafranc/feat/proposal-01-thermalALM
Open

jafranc wants to merge 35 commits into
developfrom
jafranc/feat/proposal-01-thermalALM

Conversation

@jafranc

@jafranc jafranc commented Jul 23, 2026 •

Copy link
Copy Markdown
Contributor

This PR proposes refactoring ALM into a contact policy of the shared PoromechanicsConformingFractures template, so LM and ALM share one assembly path instead of duplicating it.

Make MGR/coupling-type support explicit, not silent:

  • GEOS_MGR_STRATEGY_NOT_SUPPORTED() macro so a solver variant with no real MGR recipe yet errors loudly instead of silently reusing the wrong one — temporary, until a proper recipe is written and tested (left aside for SinglePhaseReservoirAndWells/CoupledReservoirAndWellsBase to keep this PR focused on ALM).

Fit ALM into the poromechanics hierarchy:

  • Normalize SinglePhasePoromechanicsConformingFracturesALM to derive from PoromechanicsConformingFractures instead of SinglePhasePoromechanics directly (mirrors what LM already does).
  • Move faceNodalArea/faceIntegral and the maxNumNodes constant up to ContactSolverBase.

Restore the multiphase variants on top of the unified base:

  • MultiphasePoromechanicsConformingFractures (LM) reactivated and brought up to the current base-class API — real implementation, not a stub.
  • MultiphasePoromechanicsConformingFracturesALM reactivated for Sequential coupling. FullyImplicit remains explicitly unsupported for multiphase ALM (its force/pressure and mass/displacement coupling kernels are single-phase-only; to be done in follow up PR).

TODO - Partial thermal support:

  • Known limitation: the conductive sensitivity to fracture-aperture change isn't assembled (to be done in another PR with model for that term)

Warning

WIP - Proposal - DO NOT MERGE

jhuang2601 and others added 4 commits June 18, 2026 16:04
- normalizing ALMSinglePhase to be a PoromechanicsConformingFractures and not a SinglePhasePoromechanics anymore (as done for LM)
- moving up `faceNodalArea` and `faceIntegral` to ContactSolverBase
- moving up constexpr maxNumNodes
- temp patching `hasStabilization/getStabilizationName` while waiting for bubble to reframe as Stabilization
@jafranc jafranc changed the title Jafranc/feat/proposal 01 thermalALM [wip] refact: Fit ALM as LM in the Poromechanics hierarchy Jul 23, 2026
@jafranc jafranc self-assigned this Jul 23, 2026
@jafranc
jafranc marked this pull request as draft July 23, 2026 08:42
@jhuang2601 jhuang2601 added type: cleanup / refactor Non-functional change (NFC) EPIC - FF/Contact Contact mechanics labels Sep 17, 2026
@jhuang2601 jhuang2601 changed the title [wip] refact: Fit ALM as LM in the Poromechanics hierarchy feat: Enabling THM coupling for ALM by fitting it as LM in the Poromechanics hierarchy Sep 25, 2026
@jhuang2601
jhuang2601 marked this pull request as ready for review September 25, 2026 16:19
@jhuang2601 jhuang2601 added flag: ready for review ci: run integrated tests Allows to run the integrated tests in GEOS CI ci: run code coverage enables running of the code coverage CI jobs ci: run device builds Allows to run the device (CUDA/HIP) builds and removed DO NOT MERGE ! labels Sep 25, 2026
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 device builds Allows to run the device (CUDA/HIP) builds ci: run integrated tests Allows to run the integrated tests in GEOS CI EPIC - FF/Contact Contact mechanics flag: ready for review type: cleanup / refactor Non-functional change (NFC) type: feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants