Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Use aperture table in poromechanics with conforming fractures #3194

Merged
merged 34 commits into from
Jul 10, 2024

Conversation

paveltomin
Copy link
Contributor

@paveltomin paveltomin commented Jun 28, 2024

Main thing:
replace
hydraulicAperture[k] = minimumHydraulicAperture[k] + aperture[k];
with
hydraulicAperture[k] = contactWrapper.computeHydraulicAperture( aperture[k], dHydraulicAperture_dNormalJump );
for poromechanics with conforming fractures.
At least this way there will be no negative aperture and no negative volume.

Small things:

  • Separately account for new slip in computeFractureStateStatistics to see new segments slipped.
  • Output normal displacement tolerance, sliding tolerance, normal traction tolerance when logLevel>=2.
  • For logLevel>=10 - display fracture state changes with debug information.
  • Small fixes for deltaVolume logic: assign it to 0 once applied into volume (to avoid double counting), update mass with updated volume. Those are important for fractures after poromechanics initialization that changes the volume of the fractures.

@@ -406,8 +406,8 @@ struct ComputeRotationMatricesKernel
forAll< POLICY >( size, [=] GEOS_HOST_DEVICE ( localIndex const k )
{

localIndex const & f0 = elemsToFaces[k][0];
localIndex const & f1 = elemsToFaces[k][1];
localIndex const f0 = elemsToFaces[k][0];
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is just to avoid gcc warnings

@paveltomin paveltomin self-assigned this Jun 28, 2024
@paveltomin paveltomin marked this pull request as ready for review June 28, 2024 17:33
@paveltomin paveltomin changed the title Pt/debug contact Use aperture table in poromechanics with conforming fractures Jun 28, 2024
Copy link

codecov bot commented Jun 28, 2024

Codecov Report

Attention: Patch coverage is 2.43902% with 80 lines in your changes missing coverage. Please review.

Project coverage is 55.72%. Comparing base (94a0e86) to head (59f42d2).
Report is 4 commits behind head on develop.

Files Patch % Lines
...sSolvers/contact/SolidMechanicsLagrangeContact.cpp 0.00% 44 Missing ⚠️
...cs/SinglePhasePoromechanicsConformingFractures.cpp 0.00% 17 Missing ⚠️
...nents/physicsSolvers/contact/ContactSolverBase.cpp 0.00% 14 Missing ⚠️
...hysicsSolvers/contact/SolidMechanicsALMKernels.hpp 0.00% 2 Missing ⚠️
...anicsKernels/SinglePhasePoromechanicsFractures.hpp 0.00% 2 Missing ⚠️
...nents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp 66.66% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3194      +/-   ##
===========================================
- Coverage    55.75%   55.72%   -0.03%     
===========================================
  Files         1041     1041              
  Lines        88534    88571      +37     
===========================================
- Hits         49358    49357       -1     
- Misses       39176    39214      +38     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Guotong-Ren
Copy link
Contributor

is hydraulicAperture[k] = contactWrapper.computeHydraulicAperture( aperture[k], dHydraulicAperture_dNormalJump ) essentially using aperture table?

@paveltomin
Copy link
Contributor Author

is hydraulicAperture[k] = contactWrapper.computeHydraulicAperture( aperture[k], dHydraulicAperture_dNormalJump ) essentially using aperture table?

yes

@@ -217,7 +218,9 @@ void SinglePhasePoromechanicsConformingFractures< FLOW_SOLVER >::assembleCouplin
{
/// 3. assemble Force Residual w.r.t. pressure and Flow mass residual w.r.t. displacement
assembleForceResidualDerivativeWrtPressure( mesh, regionNames, dofManager, localMatrix, localRhs );
// std::cout << "assembleForceResidualDerivativeWrtPressure RHS " << localRhs[96609] << std::endl;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
// std::cout << "assembleForceResidualDerivativeWrtPressure RHS " << localRhs[96609] << std::endl;

assembleFluidMassResidualDerivativeWrtDisplacement( mesh, regionNames, dofManager, localMatrix, localRhs );
// std::cout << "assembleFluidMassResidualDerivativeWrtDisplacement RHS " << localRhs[96609] << std::endl;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
// std::cout << "assembleFluidMassResidualDerivativeWrtDisplacement RHS " << localRhs[96609] << std::endl;

@paveltomin paveltomin added the ci: run integrated tests Allows to run the integrated tests in GEOS CI label Jul 2, 2024
@paveltomin paveltomin added the flag: requires rebaseline Requires rebaseline branch in integratedTests label Jul 3, 2024
@paveltomin
Copy link
Contributor Author

I checked the tests are results are ok, all changes are expected

fractureState[kfe] = contact::FractureState::Stick;
fractureState[kfe] = FractureState::Stick;
if( getLogLevel() >= 10 )
GEOS_LOG( GEOS_FMT( "{}: {} -> {}: dispJump = {}, normalDisplacementTolerance = {}",
Copy link
Collaborator

Choose a reason for hiding this comment

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

it would be better to avoid this logging inside the cell loop.

@rrsettgast rrsettgast added the ci: run CUDA builds Allows to triggers (costly) CUDA jobs label Jul 9, 2024
@paveltomin paveltomin changed the title Use aperture table in poromechanics with conforming fractures fix: Use aperture table in poromechanics with conforming fractures Jul 10, 2024
@rrsettgast rrsettgast merged commit 6c82021 into develop Jul 10, 2024
26 of 28 checks passed
@rrsettgast rrsettgast deleted the pt/debug-contact branch July 10, 2024 21:53
Algiane pushed a commit that referenced this pull request Jul 30, 2024
…3194)

* decouple debug matrix output from logLevel

* Update SolidMechanicsLagrangeContact.cpp

* Update SinglePhasePoromechanicsConformingFractures.cpp

* Update SolidMechanicsLagrangeContact.cpp

* Update SurfaceElementSubRegion.hpp

* Update SinglePhaseBase.cpp

* Update HydrofractureSolver.cpp

* Update .integrated_tests.yaml

* Update BASELINE_NOTES.md

---------

Co-authored-by: Pavel Tomin <“[email protected]”>
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 ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: requires rebaseline Requires rebaseline branch in integratedTests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants