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

feat: Multiphase poromechanics with contact #3228

Merged
merged 45 commits into from
Jan 15, 2025

Conversation

paveltomin
Copy link
Contributor

@paveltomin paveltomin commented Jul 17, 2024

more or less ready for code review, but needs more testing
lots of duplication between multiphase and single phase solvers - to be unified later

@paveltomin paveltomin changed the title multiphase contact (very draft) multiphase contact Aug 28, 2024
@paveltomin paveltomin changed the title multiphase contact feat: Multiphase contact Sep 20, 2024
@paveltomin paveltomin self-assigned this Sep 20, 2024
@paveltomin
Copy link
Contributor Author

tests diffs are only because of
Group has a child 'deltaVolume' in the file to compare but not the baseline file.

@paveltomin paveltomin added type: feature New feature or request flag: ready for review and removed ci: run integrated tests Allows to run the integrated tests in GEOS CI labels Nov 14, 2024
@paveltomin paveltomin changed the title feat: Multiphase contact feat: Multiphase poromechanics with contact Dec 7, 2024
@paveltomin
Copy link
Contributor Author

@CusiniM, @castelletto1, @frankfeifan, @jhuang2601, @rrsettgast, and/or @ryar9534 need review

Copy link
Collaborator

@CusiniM CusiniM left a comment

Choose a reason for hiding this comment

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

LGTM.
There are some new kernel structures and utilities to loop over surface elements and assemble terms coming from the integration over the surfaces. At some point we should use those i these poromechanics solvers.

gravityVector="{ 0.0, 0.0, -9.81 }">

<MultiphasePoromechanicsConformingFractures
name="poroFractureSolver"
Copy link
Collaborator

Choose a reason for hiding this comment

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

is it working for both sequential and fim?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

it should work yes but i don't remember if i even tested

@@ -1264,9 +1266,89 @@ void CompositionalMultiphaseFVM::applyAquiferBC( real64 const time,

}

real64 CompositionalMultiphaseFVM::setNextDt( const geos::real64 & currentDt, geos::DomainPartition & domain )
void CompositionalMultiphaseFVM::assembleHydrofracFluxTerms( real64 const GEOS_UNUSED_PARAM ( time_n ),
Copy link
Collaborator

Choose a reason for hiding this comment

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

if you can think of a better name for this function I d be happy to change it. I think the point was to distinguish it coz it adds couplings due to the aperture dependence of the permeability.

{
GEOS_MARK_FUNCTION;

this->forDiscretizationOnMeshTargets( domain.getMeshBodies(), [&] ( string const &,
Copy link
Collaborator

Choose a reason for hiding this comment

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

this is identical to the singlephase case right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

basically identical yes, I am planning to unify but need to figure out the best way given the inheritance hierarchy

CRSMatrixView< real64, globalIndex const > const & localMatrix,
arrayView1d< real64 > const & localRhs )
{
GEOS_MARK_FUNCTION;
Copy link
Collaborator

Choose a reason for hiding this comment

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

and so is this one, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes

@paveltomin paveltomin added ci: run CUDA builds Allows to triggers (costly) CUDA jobs 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 and removed flag: ready for review labels Jan 14, 2025
Copy link

codecov bot commented Jan 14, 2025

Codecov Report

Attention: Patch coverage is 7.66488% with 518 lines in your changes missing coverage. Please review.

Project coverage is 56.53%. Comparing base (212eb6b) to head (f6aca60).
Report is 1 commits behind head on develop.

Files with missing lines Patch % Lines
...ics/MultiphasePoromechanicsConformingFractures.cpp 0.00% 339 Missing ⚠️
...els/MultiphasePoromechanicsConformingFractures.hpp 0.00% 106 Missing ⚠️
...csSolvers/fluidFlow/CompositionalMultiphaseFVM.cpp 2.27% 43 Missing ⚠️
...sSolvers/fluidFlow/CompositionalMultiphaseBase.hpp 0.00% 13 Missing ⚠️
...ics/MultiphasePoromechanicsConformingFractures.hpp 18.18% 9 Missing ⚠️
...onents/physicsSolvers/fluidFlow/FlowSolverBase.hpp 0.00% 4 Missing ⚠️
...sics/SinglePhasePoromechanicsEmbeddedFractures.cpp 0.00% 2 Missing ⚠️
...fluidFlow/kernels/compositional/C1PPUPhaseFlux.hpp 0.00% 1 Missing ⚠️
...rs/fluidFlow/wells/CompositionalMultiphaseWell.cpp 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3228      +/-   ##
===========================================
- Coverage    56.82%   56.53%   -0.30%     
===========================================
  Files         1154     1157       +3     
  Lines       100079   100617     +538     
===========================================
+ Hits         56867    56880      +13     
- Misses       43212    43737     +525     

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

@paveltomin paveltomin added the flag: requires rebaseline Requires rebaseline branch in integratedTests label Jan 14, 2025
@paveltomin paveltomin merged commit 8f9126c into develop Jan 15, 2025
23 of 25 checks passed
@paveltomin paveltomin deleted the pt/multiphase-mech-contact branch January 15, 2025 22:11
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: 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.

2 participants