Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
71baaa3
Enable MultiPhase Poromechanics Conforming Fractures (ALM)
jhuang2601 Dec 18, 2025
bda195a
register multiPhase ALM solver
jhuang2601 Dec 18, 2025
e4c412e
fix compilation error
jhuang2601 Dec 19, 2025
4031717
pass the compilation
jhuang2601 Dec 19, 2025
0f97b78
Merge branch 'develop' into feature/jhuang/multiphaseALM
jhuang2601 Dec 19, 2025
244b6d7
Merge branch 'develop' into feature/jhuang/multiphaseALM
jhuang2601 Jan 5, 2026
309d6a6
Merge branch 'develop' into feature/jhuang/multiphaseALM
jhuang2601 Jan 6, 2026
789a731
update smoke test for singlePhase
jhuang2601 Jan 8, 2026
f068417
add a smoke test for multiPhase
jhuang2601 Jan 8, 2026
9054a3a
delete an unnecessary file
jhuang2601 Jan 8, 2026
8ceec4b
update ats file
jhuang2601 Jan 8, 2026
bc5da42
update .integrated_tests.yaml
jhuang2601 Jan 8, 2026
b6b9d20
update BASELINE_NOTES.md
jhuang2601 Jan 8, 2026
181b174
update smoke test for MPI run
jhuang2601 Jan 8, 2026
180e9bd
update tag for integratedTest
jhuang2601 Jan 8, 2026
9c8c4d6
update schema
jhuang2601 Jan 15, 2026
f860c0c
update xml file
jhuang2601 Jan 15, 2026
7d9b99b
Update src/coreComponents/physicsSolvers/multiphysics/MultiphasePorom…
jhuang2601 Jan 22, 2026
076279b
Update src/coreComponents/physicsSolvers/multiphysics/MultiphasePorom…
jhuang2601 Jan 22, 2026
91afa2c
Update src/coreComponents/physicsSolvers/multiphysics/MultiphasePorom…
jhuang2601 Jan 22, 2026
1f676c0
Merge branch 'develop' into feature/jhuang/multiphaseALM
rrsettgast Jan 24, 2026
7a8ef8f
update integratedTest tags
jhuang2601 Jan 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ set( multiPhysicsSolvers_headers
MultiphasePoromechanics.hpp
OneWayCoupledFractureFlowContactMechanics.hpp
MultiphasePoromechanicsConformingFractures.hpp
MultiphasePoromechanicsConformingFracturesALM.hpp
PhaseFieldFractureSolver.hpp
PhaseFieldPoromechanicsSolver.hpp
PoromechanicsInitialization.hpp
Expand Down Expand Up @@ -72,6 +73,7 @@ set( multiPhysicsSolvers_sources
MultiphasePoromechanics.cpp
OneWayCoupledFractureFlowContactMechanics.cpp
MultiphasePoromechanicsConformingFractures.cpp
MultiphasePoromechanicsConformingFracturesALM.cpp
PhaseFieldFractureSolver.cpp
PhaseFieldPoromechanicsSolver.cpp
PoromechanicsInitialization.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.hpp"
#include "physicsSolvers/solidMechanics/kernels/ImplicitSmallStrainQuasiStatic.hpp"
#include "physicsSolvers/solidMechanics/contact/SolidMechanicsLagrangeContact.hpp"
#include "physicsSolvers/solidMechanics/contact/SolidMechanicsAugmentedLagrangianContact.hpp"

#include "physicsSolvers/multiphysics/poromechanicsKernels/PoromechanicsKernelsDispatchTypeList.hpp"
#include "physicsSolvers/multiphysics/poromechanicsKernels/ThermoPoromechanicsKernelsDispatchTypeList.hpp"
Expand Down Expand Up @@ -252,8 +253,10 @@ void MultiphasePoromechanics< FLOW_SOLVER, MECHANICS_SOLVER >::updateBulkDensity

template class MultiphasePoromechanics<>;
template class MultiphasePoromechanics< CompositionalMultiphaseBase, SolidMechanicsLagrangeContact >;
template class MultiphasePoromechanics< CompositionalMultiphaseBase, SolidMechanicsAugmentedLagrangianContact >;
template class MultiphasePoromechanics< CompositionalMultiphaseReservoirAndWells<> >;
template class MultiphasePoromechanics< CompositionalMultiphaseReservoirAndWells<>, SolidMechanicsLagrangeContact >;
template class MultiphasePoromechanics< CompositionalMultiphaseReservoirAndWells<>, SolidMechanicsAugmentedLagrangianContact >;

namespace
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
/*
* ------------------------------------------------------------------------------------------------------------
* SPDX-License-Identifier: LGPL-2.1-only
*
* Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
* Copyright (c) 2018-2024 TotalEnergies
* Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
* Copyright (c) 2023-2024 Chevron
* Copyright (c) 2019- GEOS/GEOSX Contributors
* All rights reserved
*
* See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
* ------------------------------------------------------------------------------------------------------------
*/

/**
* @file MultiphasePoromechanicsConformingFracturesALM.cpp
*/

#include "MultiphasePoromechanicsConformingFracturesALM.hpp"

#include "finiteVolume/FluxApproximationBase.hpp"

namespace geos
{

using namespace constitutive;
using namespace dataRepository;
using namespace fields;

template< typename FLOW_SOLVER >
MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::MultiphasePoromechanicsConformingFracturesALM( const string & name,
Group * const parent )
: Base( name, parent )
{}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::setupCoupling( DomainPartition const & domain,
DofManager & dofManager ) const
{
GEOS_MARK_FUNCTION;

GEOS_UNUSED_VAR( domain, dofManager );

GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );

}


template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::setupSystem( DomainPartition & domain,
DofManager & dofManager,
CRSMatrix< real64, globalIndex > & localMatrix,
ParallelVector & rhs,
ParallelVector & solution,
bool const setSparsity )
{

GEOS_MARK_FUNCTION;

GEOS_UNUSED_VAR( domain, dofManager, localMatrix, rhs, solution, setSparsity );

GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );

}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::assembleSystem( real64 const time_n,
real64 const dt,
DomainPartition & domain,
DofManager const & dofManager,
CRSMatrixView< real64, globalIndex const > const & localMatrix,
arrayView1d< real64 > const & localRhs )
{

GEOS_MARK_FUNCTION;

GEOS_UNUSED_VAR( time_n, dt, domain, dofManager, localMatrix, localRhs );

GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );
}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::assembleElementBasedContributions( real64 const time_n,
real64 const dt,
DomainPartition & domain,
DofManager const & dofManager,
CRSMatrixView< real64, globalIndex const > const & localMatrix,
arrayView1d< real64 > const & localRhs )
{
GEOS_MARK_FUNCTION;

GEOS_UNUSED_VAR( time_n, dt, domain, dofManager, localMatrix, localRhs );

GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );

}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::assembleCouplingTerms( real64 const time_n,
real64 const dt,
DomainPartition const & domain,
DofManager const & dofManager,
CRSMatrixView< real64, globalIndex const > const & localMatrix,
arrayView1d< real64 > const & localRhs )
{
GEOS_MARK_FUNCTION;
GEOS_UNUSED_VAR( domain, dofManager, localMatrix, localRhs, time_n, dt );

GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );
}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::updateState( DomainPartition & domain )
{
GEOS_MARK_FUNCTION;
GEOS_UNUSED_VAR( domain );
GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );
}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::
setUpDflux_dApertureMatrix( DomainPartition & domain,
DofManager const & GEOS_UNUSED_PARAM( dofManager ),
CRSMatrix< real64, globalIndex > & localMatrix )
{
GEOS_UNUSED_VAR( domain, localMatrix );
GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );
}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::
addTransmissibilityCouplingNNZ( DomainPartition const & domain,
DofManager const & dofManager,
arrayView1d< localIndex > const & rowLengths ) const
{
GEOS_MARK_FUNCTION;

GEOS_UNUSED_VAR( domain, dofManager, rowLengths );
GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );

}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::
addTransmissibilityCouplingPattern( DomainPartition const & domain,
DofManager const & dofManager,
SparsityPatternView< globalIndex > const & pattern ) const
{
GEOS_MARK_FUNCTION;

GEOS_UNUSED_VAR( domain, dofManager, pattern );
GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );
}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::
assembleForceResidualDerivativeWrtPressure( string const & meshName,
MeshLevel const & mesh,
arrayView1d< string const > const & regionNames,
DofManager const & dofManager,
CRSMatrixView< real64, globalIndex const > const & localMatrix,
arrayView1d< real64 > const & localRhs )
{
GEOS_MARK_FUNCTION;

GEOS_UNUSED_VAR( meshName, mesh, regionNames, dofManager, localMatrix, localRhs );
GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );
}

template< typename FLOW_SOLVER >
void MultiphasePoromechanicsConformingFracturesALM< FLOW_SOLVER >::
assembleFluidMassResidualDerivativeWrtDisplacement( MeshLevel const & mesh,
arrayView1d< string const > const & regionNames,
DofManager const & dofManager,
CRSMatrixView< real64, globalIndex const > const & localMatrix,
arrayView1d< real64 > const & GEOS_UNUSED_PARAM( localRhs ) )
{
GEOS_MARK_FUNCTION;

GEOS_UNUSED_VAR( mesh, regionNames, dofManager, localMatrix );
GEOS_ERROR( "MultiphasePoromechanicsConformingFracturesALM does not support FullyImplicit coupling type." );

}


template class MultiphasePoromechanicsConformingFracturesALM<>;
template class MultiphasePoromechanicsConformingFracturesALM< CompositionalMultiphaseReservoirAndWells<> >;

namespace
{
typedef MultiphasePoromechanicsConformingFracturesALM< CompositionalMultiphaseReservoirAndWells<> > MultiphaseReservoirPoromechanicsConformingFracturesALM;
REGISTER_CATALOG_ENTRY( PhysicsSolverBase, MultiphaseReservoirPoromechanicsConformingFracturesALM, string const &, Group * const )
typedef MultiphasePoromechanicsConformingFracturesALM<> MultiphasePoromechanicsConformingFracturesALM;
REGISTER_CATALOG_ENTRY( PhysicsSolverBase, MultiphasePoromechanicsConformingFracturesALM, string const &, Group * const )
}

} /* namespace geos */
Loading
Loading