-
Notifications
You must be signed in to change notification settings - Fork 91
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: Add immiscible multiphase flow package #3251
Conversation
src/coreComponents/physicsSolvers/fluidFlow/ImmiscibleMultiphaseFlowFields.hpp
Outdated
Show resolved
Hide resolved
src/coreComponents/physicsSolvers/fluidFlow/ImmiscibleMultiphaseFlowFields.hpp
Outdated
Show resolved
Hide resolved
.vscode-codespaces/launch.json
Outdated
"program": "${userHome}/two-phase/GEOS/install-ubuntu22-debug/bin/geosx", | ||
"args": ["-i", "/home/rpiazza/two-phase/GEOS/inputFiles/immiscibleMultiphaseFlow/immiscible_2phaseFlow_1d.xml", "-o", "${userHome}/geos-output"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove these changes.
I'd remove the file |
{ | ||
FlowSolverBase::registerDataOnMesh( meshBodies ); | ||
|
||
// DomainPartition const & domain = this->getGroupByPath< DomainPartition >( "/Problem/domain" ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove?
|
||
} ); | ||
|
||
// FaceManager & faceManager = mesh.getFaceManager(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove?
FlowSolverBase::initializePreSubGroups(); | ||
|
||
DomainPartition & domain = this->getGroupByPath< DomainPartition >( "/Problem/domain" ); | ||
// ConstitutiveManager const & cm = domain.getConstitutiveManager(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove
// ConstitutiveManager const & cm = domain.getConstitutiveManager(); | ||
|
||
// // 1. Validate various models against each other (must have same phases and components) | ||
// validateConstitutiveModels( domain ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
check and remove if not needed
arrayView2d< real64, immiscibleFlow::USD_PHASE > const phaseMass = subRegion.getField< fields::immiscibleMultiphaseFlow::phaseMass >(); | ||
|
||
// Might be needed for geomechanics????? if so, need to change the accumulation as well? | ||
//arrayView1d< real64 > const deltaVolume = subRegion.getField< fields::flow::deltaVolume >(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is used for geomechanics with fractures yes, see https://github.com/GEOS-DEV/GEOS/pull/3228/files#diff-44d45911b0c4b17989e2a0ba29b844cb0ee4975f16329ff612825db0b269d55b
not really needed in your PR at this point
// apply flux boundary conditions | ||
applySourceFluxBC( time_n, dt, dofManager, domain, localMatrix.toViewConstSizes(), localRhs.toView() ); | ||
|
||
// for( localIndex row = 0; row < localMatrix.toViewConstSizes().numRows(); ++row ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove, there is a general way to print out matrix and rhs in base solver
{ | ||
GEOS_MARK_FUNCTION; | ||
|
||
// // Only validate BC at the beginning of Newton loop |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
restore or remove
} | ||
} ); | ||
|
||
// SourceFluxStatsAggregator::forAllFluxStatWrappers( subRegion, fs.getName(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
restore?
GEOS_UNUSED_VAR( dt ); | ||
|
||
DofManager::CompMask pressureMask( m_numDofPerCell, 0, 1 ); | ||
//DofManager::CompMask PhaseMask( m_numDofPerCell, 1, m_numPhases ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove if not needed
@@ -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 ) ); |
There was a problem hiding this comment.
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.
Implementation of a multiphase immiscible solver for compressible fluids with viscous, gravity and capillary forces:
ImmiscibleMultiphaseFlow
solver and associated kernels (currently limited to two phases)TwoPhaseFluid
model for tabular data input