Skip to content

Conversation

jhuang2601
Copy link
Contributor

@jhuang2601 jhuang2601 commented Sep 10, 2021

This PR implements fault permeability models considering permeability change during fault slippage:

  • Implement slip dependent permeability model (simple linear multiplier)
  • Add documents for SlipDependentPermeability model and CompressibleSolidSlipDependentPermeability
  • Add SlipPermeability_pEDFM_smoke to the integratedTests and check the running on Pecan
    GEOSX/integratedTests#178
  • Additionally, it modifies the kernels and the solvers such that the dependency of the flux w.r.t to all components of the dispJump is considered (not just the aperture any more) for efem-edfm runs.

Following two models will be implemented in separated PRs

  • Willis-Richards model (Barton-Bandis type correlation)
  • Input tables for more generalized models

@jhuang2601 jhuang2601 added the type: feature New feature or request label Sep 10, 2021
@jhuang2601 jhuang2601 linked an issue Sep 10, 2021 that may be closed by this pull request
@jhuang2601 jhuang2601 self-assigned this Sep 10, 2021
@jhuang2601 jhuang2601 changed the title [feature] implement fault permeability models [Feature] implement fault permeability models Sep 14, 2021
arraySlice1d< real64 > const & permeability,
arraySlice1d< real64 > const & dPerm_dDisplacement ) const
{
real64 const shearDisp = std::max( abs(displacementJump[1]), abs(displacementJump[2]) )
Copy link
Contributor

Choose a reason for hiding this comment

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

I suggest we do this with an L2-norm of the shear displacement instead of the max norm. shearMag = sqrt(u1^2+u2^2). We can then consistently linearize as dShearMag_dDisp = (1/shearMag)*{u1,u2}.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good idea, please check the update

Copy link
Contributor

@joshua-white joshua-white left a comment

Choose a reason for hiding this comment

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

This is a great start, but we should clarify the primary variables and linearization (dOuput_dInput).

@jhuang2601
Copy link
Contributor Author

jhuang2601 commented Sep 21, 2021

This is a great start, but we should clarify the primary variables and linearization (dOuput_dInput).

Thanks for your suggestion. For simplicity, shear displacement dependent permeability is expressed as a function of the dispJump, which denotes the local relative displacement vector in the Embedded Fracture model. And a tanh model is used to linearize the correlation to avoid sharp inflection.

The dispJump has 3 components defined in the local coordinate system:
dispJump[0] : normal component (mechanical aperture)
dispJump[1]: component along tangent direction 1
dispJump[2]: component along tangent direction 2

However, in the Lagrange contact model, a similar vector is used for relative displacement in the local coordinate system but has a different name (localJump). We need to select a universal name for the local relative displacement vector across different fault/fracture models.

Copy link
Contributor

@joshua-white joshua-white left a comment

Choose a reason for hiding this comment

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

Nice, changes look great to me. Let's have @CusiniM look quickly to make sure it is all consistent with his framework.

I prefer displacementJump over localJump as nomenclature. It clearly identifies the physical quantity.

Copy link
Contributor

@sytuannguyen sytuannguyen left a comment

Choose a reason for hiding this comment

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

well done!

@CusiniM CusiniM self-assigned this Nov 23, 2021
@CusiniM CusiniM added the flag: requires rebaseline Requires rebaseline branch in integratedTests label Nov 24, 2021
@jhuang2601 jhuang2601 marked this pull request as ready for review November 24, 2021 14:52
@CusiniM CusiniM added ci: run CUDA builds Allows to triggers (costly) CUDA jobs and removed flag: ready for review labels Jan 8, 2022
@CusiniM CusiniM merged commit 04075f3 into develop Jan 8, 2022
@CusiniM CusiniM deleted the feature/jhuang/faultPermeability branch January 8, 2022 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci: run CUDA builds Allows to triggers (costly) CUDA jobs flag: requires rebaseline Requires rebaseline branch in integratedTests type: feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Barton-Bandis law for fracture closure/contact
4 participants