Skip to content

feat: Sequential ChemoMechanics Coupling#3887

Draft
frankfeifan wants to merge 132 commits intodevelopfrom
feat/frankfei/reactiveTransportMechanicsCoupling
Draft

feat: Sequential ChemoMechanics Coupling#3887
frankfeifan wants to merge 132 commits intodevelopfrom
feat/frankfei/reactiveTransportMechanicsCoupling

Conversation

@frankfeifan
Copy link
Copy Markdown
Contributor

@frankfeifan frankfeifan commented Oct 29, 2025

This PR will couple SinglePhaseReactiveTransport solver (#3634) with SolidMechanicsFEM in a sequential manner first. The preliminary goal is to account for the volume expansion or contraction and its resulting mechanical response (e.g., stress) due to chemical precipitation or dissolution.

  • Incorporate an inelastic strain term based on mineral reaction in the stress calculation in a CoupledSolid
  • Some integrated tests or unit tests if necessary
  • An appropriate porosity and permeability model
  • Couple with the phase-field for damage/fracture modeling (maybe another PR)

frankfeifan and others added 30 commits March 13, 2025 17:52
…d' into feature/singlePhaseReactiveTransportWithHPCReact
…ture/singlePhaseReactiveTransportWithHPCReact
…d' into feature/singlePhaseReactiveTransportWithHPCReact
rrsettgast and others added 25 commits December 21, 2025 20:08
…portWithHPCReact' into feature/singlePhaseReactiveTransportWithHPCReact
…thub.com:GEOS-DEV/GEOS into feature/singlePhaseReactiveTransportWithHPCReact
…feat/frankfei/reactiveTransportMechanicsCoupling
…thub.com:GEOS-DEV/GEOS into feat/frankfei/reactiveTransportMechanicsCoupling
…t blowing up out of range the ratio

Addeed a small epsilon to the porosity term in Carman Kozeny model to avoid blowing up during initialization

Chnged sign in porosity update to represent porosity decrease for precipitation and vice versa
…thub.com:GEOS-DEV/GEOS into feat/frankfei/reactiveTransportMechanicsCoupling
real64 const constant = pow( m_sphericity*m_particleDiameter, 2 ) / 150;

real64 const permValue = constant * pow( porosity, 3 )/ pow( (1 - porosity), 2 );
real64 const eps = 1e-20;
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@azibitsker lets make it an input option later instead of hard code

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.

4 participants