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: Immiscible multiphase flow #3524

Open
wants to merge 93 commits into
base: develop
Choose a base branch
from

Conversation

rpiazza87
Copy link

@rpiazza87 rpiazza87 commented Jan 28, 2025

Implementation of a multiphase immiscible solver for compressible fluids with viscous, gravity and capillary forces:

  • Included new ImmiscibleMultiphaseFlow solver and associated kernels (currently limited to two phases)
  • Standard and total mass formulations
  • Cell-centered Dirichlet and flux boundary conditions
  • Included new TwoPhaseFluid model for tabular data input
  • Direct and iterative linear solver compatibility
  • GPU compatibility
  • Set of input files with validation cases
  • Unit tests and documentation provided

CusiniM and others added 30 commits July 26, 2024 16:29
…phase properties reflecting the comments from the meeting on Aug-13-2024
@@ -213,6 +213,7 @@ class MGRStrategyBase
#if GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_CUDA || GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_HIP
GEOS_LAI_CHECK_ERROR( HYPRE_BoomerAMGSetAggInterpType( solver.ptr, hypre::getAMGAggressiveInterpolationType( LinearSolverParameters::AMG::AggInterpType::modifiedExtendedE ) ) );
GEOS_LAI_CHECK_ERROR( HYPRE_BoomerAMGSetCoarsenType( solver.ptr, hypre::getAMGCoarseningType( LinearSolverParameters::AMG::CoarseningType::PMIS ) ) );
GEOS_LAI_CHECK_ERROR( HYPRE_BoomerAMGSetAggNumLevels( solver.ptr, 0 ) );
Copy link
Collaborator

Choose a reason for hiding this comment

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

can you remove this and create a PR only with this change? @victorapm we should test this. Unless you know why this would impact GPU performance so much.

Copy link
Contributor

Choose a reason for hiding this comment

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

Agreed on testing this. It seems aggressive coarsening did not behave well for some of the problems tested in this PR, while it works well for other problems I tested. For better robustness, we can leave it turned off by default as proposed in this PR, but ultimately we should add the option of controlling this via input file

Comment on lines 108 to 114
/* TODO
// call to correctly set member array tertiary sizes on the 'main' material object
resizeFields( 0, 0 );

// set labels on array wrappers for plottable fields
setLabels();
*/
Copy link
Collaborator

Choose a reason for hiding this comment

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

remove?

@bd713 bd713 added ci: run CUDA builds Allows to triggers (costly) CUDA jobs flag: requires rebaseline Requires rebaseline branch in integratedTests 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 labels Jan 28, 2025
@bd713 bd713 changed the title Feature/immiscible multiphase flow feat: Immiscible multiphase flow Jan 28, 2025
Copy link

codecov bot commented Jan 29, 2025

Codecov Report

Attention: Patch coverage is 75.08772% with 355 lines in your changes missing coverage. Please review.

Project coverage is 54.15%. Comparing base (5bfdb01) to head (23c5240).
Report is 7 commits behind head on develop.

Files with missing lines Patch % Lines
...sicsSolvers/fluidFlow/ImmiscibleMultiphaseFlow.cpp 54.86% 292 Missing ⚠️
...miscibleMultiphase/ImmiscibleMultiphaseKernels.hpp 90.85% 32 Missing ⚠️
...es/hypre/mgrStrategies/ImmiscibleMultiphaseFVM.hpp 0.00% 15 Missing ⚠️
...sicsSolvers/fluidFlow/ImmiscibleMultiphaseFlow.hpp 50.00% 10 Missing ⚠️
...onents/linearAlgebra/interfaces/hypre/HypreMGR.cpp 0.00% 3 Missing ⚠️
...els/immiscibleMultiphase/KernelLaunchSelectors.hpp 66.66% 2 Missing ⚠️
...ts/fluidFlowTests/testImmiscibleMultiphaseFlow.cpp 99.01% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3524      +/-   ##
===========================================
- Coverage    56.74%   54.15%   -2.59%     
===========================================
  Files         1169     1205      +36     
  Lines       101538   110073    +8535     
===========================================
+ Hits         57615    59612    +1997     
- Misses       43923    50461    +6538     

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

Copy link
Contributor

@victorapm victorapm left a comment

Choose a reason for hiding this comment

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

The new MGR strategy looks good, thank you!

@paveltomin paveltomin closed this Feb 7, 2025
@paveltomin paveltomin reopened this Feb 7, 2025
@paveltomin paveltomin requested a review from tjb-ltk as a code owner February 7, 2025 22:42
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants