From 9aa6887b5ab2c458b879debef7578c795b15cf41 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 22 Aug 2025 11:31:27 -0500 Subject: [PATCH 01/18] enable Kozeny-Carman Permeability for PorousSolid --- .../constitutive/solid/PorousSolid.cpp | 81 ++++++++++++------- .../constitutive/solid/PorousSolid.hpp | 29 +++---- 2 files changed, 68 insertions(+), 42 deletions(-) diff --git a/src/coreComponents/constitutive/solid/PorousSolid.cpp b/src/coreComponents/constitutive/solid/PorousSolid.cpp index 375b8e1fed7..3bb62aa9ed9 100644 --- a/src/coreComponents/constitutive/solid/PorousSolid.cpp +++ b/src/coreComponents/constitutive/solid/PorousSolid.cpp @@ -27,6 +27,8 @@ #include "DruckerPragerExtended.hpp" #include "ModifiedCamClay.hpp" #include "DuvautLionsSolid.hpp" +#include "constitutive/permeability/ConstantPermeability.hpp" +#include "constitutive/permeability/CarmanKozenyPermeability.hpp" namespace geos { @@ -36,43 +38,66 @@ using namespace dataRepository; namespace constitutive { -template< typename SOLID_TYPE > -PorousSolid< SOLID_TYPE >::PorousSolid( string const & name, Group * const parent ): - CoupledSolid< SOLID_TYPE, BiotPorosity, ConstantPermeability >( name, parent ) +template< typename SOLID_TYPE, + typename PERM_TYPE > +PorousSolid< SOLID_TYPE, PERM_TYPE >::PorousSolid( string const & name, Group * const parent ): + CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >( name, parent ) {} -template< typename SOLID_TYPE > -PorousSolid< SOLID_TYPE >::~PorousSolid() = default; +template< typename SOLID_TYPE, + typename PERM_TYPE > +PorousSolid< SOLID_TYPE, PERM_TYPE >::~PorousSolid() = default; -template< typename SOLID_TYPE > -void PorousSolid< SOLID_TYPE >::initializeState() const +template< typename SOLID_TYPE, + typename PERM_TYPE > +void PorousSolid< SOLID_TYPE, PERM_TYPE >::initializeState() const { - CoupledSolid< SOLID_TYPE, BiotPorosity, ConstantPermeability >::initializeState(); + CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >::initializeState(); } // Register all PorousSolid model types. -typedef PorousSolid< ElasticIsotropic > PorousElasticIsotropic; -typedef PorousSolid< ElasticTransverseIsotropic > PorousElasticTransverseIsotropic; -typedef PorousSolid< ElasticOrthotropic > PorousElasticOrthotropic; -typedef PorousSolid< DelftEgg > PorousDelftEgg; -typedef PorousSolid< DruckerPrager > PorousDruckerPrager; -typedef PorousSolid< DruckerPragerExtended > PorousDruckerPragerExtended; -typedef PorousSolid< DuvautLionsSolid< DruckerPrager > > PorousViscoDruckerPrager; -typedef PorousSolid< DuvautLionsSolid< DruckerPragerExtended > > PorousViscoDruckerPragerExtended; -typedef PorousSolid< DuvautLionsSolid< ModifiedCamClay > > PorousViscoModifiedCamClay; -typedef PorousSolid< ModifiedCamClay > PorousModifiedCamClay; +typedef PorousSolid< ElasticIsotropic, ConstantPermeability > PorousElasticIsotropicConstant; +typedef PorousSolid< ElasticTransverseIsotropic, ConstantPermeability > PorousElasticTransverseIsotropicConstant; +typedef PorousSolid< ElasticOrthotropic, ConstantPermeability > PorousElasticOrthotropicConstant; +typedef PorousSolid< DelftEgg, ConstantPermeability > PorousDelftEggConstant; +typedef PorousSolid< DruckerPrager, ConstantPermeability > PorousDruckerPragerConstant; +typedef PorousSolid< DruckerPragerExtended, ConstantPermeability > PorousDruckerPragerExtendedConstant; +typedef PorousSolid< DuvautLionsSolid< DruckerPrager >, ConstantPermeability > PorousViscoDruckerPragerConstant; +typedef PorousSolid< DuvautLionsSolid< DruckerPragerExtended >, ConstantPermeability > PorousViscoDruckerPragerExtendedConstant; +typedef PorousSolid< DuvautLionsSolid< ModifiedCamClay >, ConstantPermeability > PorousViscoModifiedCamClayConstant; +typedef PorousSolid< ModifiedCamClay, ConstantPermeability > PorousModifiedCamClayConstant; +typedef PorousSolid< ElasticIsotropic, CarmanKozenyPermeability > PorousElasticIsotropicCK; +typedef PorousSolid< ElasticTransverseIsotropic, CarmanKozenyPermeability > PorousElasticTransverseIsotropicCK; +typedef PorousSolid< ElasticOrthotropic, CarmanKozenyPermeability > PorousElasticOrthotropicCK; +typedef PorousSolid< DelftEgg, CarmanKozenyPermeability > PorousDelftEggCK; +typedef PorousSolid< DruckerPrager, CarmanKozenyPermeability > PorousDruckerPragerCK; +typedef PorousSolid< DruckerPragerExtended, CarmanKozenyPermeability > PorousDruckerPragerExtendedCK; +typedef PorousSolid< DuvautLionsSolid< DruckerPrager >, CarmanKozenyPermeability > PorousViscoDruckerPragerCK; +typedef PorousSolid< DuvautLionsSolid< DruckerPragerExtended >, CarmanKozenyPermeability > PorousViscoDruckerPragerExtendedCK; +typedef PorousSolid< DuvautLionsSolid< ModifiedCamClay >, CarmanKozenyPermeability > PorousViscoModifiedCamClayCK; +typedef PorousSolid< ModifiedCamClay, CarmanKozenyPermeability > PorousModifiedCamClayCK; -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticIsotropic, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticTransverseIsotropic, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticOrthotropic, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDelftEgg, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDruckerPrager, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDruckerPragerExtended, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousModifiedCamClay, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoDruckerPrager, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoDruckerPragerExtended, string const &, Group * const ) -REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoModifiedCamClay, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticIsotropicConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticTransverseIsotropicConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticOrthotropicConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDelftEggConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDruckerPragerConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDruckerPragerExtendedConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousModifiedCamClayConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoDruckerPragerConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoDruckerPragerExtendedConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoModifiedCamClayConstant, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticIsotropicCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticTransverseIsotropicCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousElasticOrthotropicCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDelftEggCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDruckerPragerCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousDruckerPragerExtendedCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousModifiedCamClayCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoDruckerPragerCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoDruckerPragerExtendedCK, string const &, Group * const ) +REGISTER_CATALOG_ENTRY( ConstitutiveBase, PorousViscoModifiedCamClayCK, string const &, Group * const ) } diff --git a/src/coreComponents/constitutive/solid/PorousSolid.hpp b/src/coreComponents/constitutive/solid/PorousSolid.hpp index 98f9945361b..78326122f61 100644 --- a/src/coreComponents/constitutive/solid/PorousSolid.hpp +++ b/src/coreComponents/constitutive/solid/PorousSolid.hpp @@ -24,7 +24,6 @@ #include "constitutive/solid/CoupledSolid.hpp" #include "constitutive/solid/porosity/BiotPorosity.hpp" #include "constitutive/solid/SolidBase.hpp" -#include "constitutive/permeability/ConstantPermeability.hpp" namespace geos { @@ -37,8 +36,9 @@ namespace constitutive * * @tparam SOLID_TYPE type of the porosity model */ -template< typename SOLID_TYPE > -class PorousSolidUpdates : public CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, ConstantPermeability > +template< typename SOLID_TYPE, + typename PERM_TYPE > +class PorousSolidUpdates : public CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, PERM_TYPE > { public: @@ -49,8 +49,8 @@ class PorousSolidUpdates : public CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, */ PorousSolidUpdates( SOLID_TYPE const & solidModel, BiotPorosity const & porosityModel, - ConstantPermeability const & permModel ): - CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, ConstantPermeability >( solidModel, porosityModel, permModel ) + PERM_TYPE const & permModel ): + CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, PERM_TYPE >( solidModel, porosityModel, permModel ) {} GEOS_HOST_DEVICE @@ -216,9 +216,9 @@ class PorousSolidUpdates : public CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, private: - using CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, ConstantPermeability >::m_solidUpdate; - using CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, ConstantPermeability >::m_porosityUpdate; - using CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, ConstantPermeability >::m_permUpdate; + using CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, PERM_TYPE >::m_solidUpdate; + using CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, PERM_TYPE >::m_porosityUpdate; + using CoupledSolidUpdates< SOLID_TYPE, BiotPorosity, PERM_TYPE >::m_permUpdate; GEOS_HOST_DEVICE @@ -329,13 +329,14 @@ class PorousSolidBase * * @tparam SOLID_TYPE type of solid model */ -template< typename SOLID_TYPE > -class PorousSolid : public CoupledSolid< SOLID_TYPE, BiotPorosity, ConstantPermeability > +template< typename SOLID_TYPE, + typename PERM_TYPE > +class PorousSolid : public CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE > { public: /// Alias for ElasticIsotropicUpdates - using KernelWrapper = PorousSolidUpdates< SOLID_TYPE >; + using KernelWrapper = PorousSolidUpdates< SOLID_TYPE, PERM_TYPE >; /** * @brief Constructor @@ -414,9 +415,9 @@ class PorousSolid : public CoupledSolid< SOLID_TYPE, BiotPorosity, ConstantPerme private: - using CoupledSolid< SOLID_TYPE, BiotPorosity, ConstantPermeability >::getSolidModel; - using CoupledSolid< SOLID_TYPE, BiotPorosity, ConstantPermeability >::getPorosityModel; - using CoupledSolid< SOLID_TYPE, BiotPorosity, ConstantPermeability >::getPermModel; + using CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >::getSolidModel; + using CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >::getPorosityModel; + using CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >::getPermModel; }; From 0d5520859da6a015feb7bcb5f386a6a31970b1a3 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 22 Aug 2025 12:10:11 -0500 Subject: [PATCH 02/18] update ConstitutivePassThru.hpp --- .../constitutive/ConstitutivePassThru.hpp | 105 ++++++++++++------ 1 file changed, 69 insertions(+), 36 deletions(-) diff --git a/src/coreComponents/constitutive/ConstitutivePassThru.hpp b/src/coreComponents/constitutive/ConstitutivePassThru.hpp index 65314e99b1e..0b0c16d8a2d 100644 --- a/src/coreComponents/constitutive/ConstitutivePassThru.hpp +++ b/src/coreComponents/constitutive/ConstitutivePassThru.hpp @@ -268,16 +268,16 @@ struct ConstitutivePassThru< NullModel > /** - * Specialization for the PorousSolid< ElasticIsotropic > model. + * Specialization for the PorousSolid< ElasticIsotropic, ConstantPermeability > model. */ template<> -struct ConstitutivePassThru< PorousSolid< ElasticIsotropic > > +struct ConstitutivePassThru< PorousSolid< ElasticIsotropic, ConstantPermeability > > { template< typename LAMBDA > static void execute( ConstitutiveBase & constitutiveRelation, LAMBDA && lambda ) { - if( auto * const ptr = dynamic_cast< PorousSolid< ElasticIsotropic > * >( &constitutiveRelation ) ) + if( auto * const ptr = dynamic_cast< PorousSolid< ElasticIsotropic, ConstantPermeability > * >( &constitutiveRelation ) ) { lambda( *ptr ); } @@ -318,17 +318,28 @@ struct ConstitutivePassThru< PorousSolidBase > template< typename LAMBDA > static void execute( ConstitutiveBase & constitutiveRelation, LAMBDA && lambda ) { - ConstitutivePassThruHandler< PorousSolid< DruckerPragerExtended >, - PorousSolid< ModifiedCamClay >, - PorousSolid< DelftEgg >, - PorousSolid< DruckerPrager >, - PorousSolid< DuvautLionsSolid< DruckerPrager > >, - PorousSolid< DuvautLionsSolid< DruckerPragerExtended > >, - PorousSolid< DuvautLionsSolid< ModifiedCamClay > >, - PorousSolid< ElasticIsotropic >, - PorousSolid< ElasticTransverseIsotropic >, - PorousSolid< ElasticIsotropicPressureDependent >, - PorousSolid< ElasticOrthotropic > >::execute( constitutiveRelation, + ConstitutivePassThruHandler< PorousSolid< DruckerPragerExtended, ConstantPermeability >, + PorousSolid< ModifiedCamClay, ConstantPermeability >, + PorousSolid< DelftEgg, ConstantPermeability >, + PorousSolid< DruckerPrager, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPrager >, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPragerExtended >, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< ModifiedCamClay >, ConstantPermeability >, + PorousSolid< ElasticIsotropic, ConstantPermeability >, + PorousSolid< ElasticTransverseIsotropic, ConstantPermeability >, + PorousSolid< ElasticIsotropicPressureDependent, ConstantPermeability >, + PorousSolid< ElasticOrthotropic, ConstantPermeability > + PorousSolid< DruckerPragerExtended, CarmanKozenyPermeability >, + PorousSolid< ModifiedCamClay, CarmanKozenyPermeability >, + PorousSolid< DelftEgg, CarmanKozenyPermeability >, + PorousSolid< DruckerPrager, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPrager >, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPragerExtended >, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< ModifiedCamClay >, CarmanKozenyPermeability >, + PorousSolid< ElasticIsotropic, CarmanKozenyPermeability >, + PorousSolid< ElasticTransverseIsotropic, CarmanKozenyPermeability >, + PorousSolid< ElasticIsotropicPressureDependent, CarmanKozenyPermeability >, + PorousSolid< ElasticOrthotropic, CarmanKozenyPermeability > >::execute( constitutiveRelation, std::forward< LAMBDA >( lambda ) ); } }; @@ -424,17 +435,28 @@ struct ConstitutivePassThru< CoupledSolidBase > CompressibleSolid< PressurePorosity, PressurePermeability >, CompressibleSolid< PressurePorosity, SlipDependentPermeability >, CompressibleSolid< PressurePorosity, WillisRichardsPermeability >, - PorousSolid< DruckerPragerExtended >, - PorousSolid< ModifiedCamClay >, - PorousSolid< DelftEgg >, - PorousSolid< DruckerPrager >, - PorousSolid< DuvautLionsSolid< DruckerPrager > >, - PorousSolid< DuvautLionsSolid< DruckerPragerExtended > >, - PorousSolid< DuvautLionsSolid< ModifiedCamClay > >, - PorousSolid< ElasticIsotropic >, - PorousSolid< ElasticTransverseIsotropic >, - PorousSolid< ElasticIsotropicPressureDependent >, - PorousSolid< ElasticOrthotropic >, + PorousSolid< DruckerPragerExtended, ConstantPermeability >, + PorousSolid< ModifiedCamClay, ConstantPermeability >, + PorousSolid< DelftEgg, ConstantPermeability >, + PorousSolid< DruckerPrager, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPrager >, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPragerExtended >, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< ModifiedCamClay >, ConstantPermeability >, + PorousSolid< ElasticIsotropic, ConstantPermeability >, + PorousSolid< ElasticTransverseIsotropic, ConstantPermeability >, + PorousSolid< ElasticIsotropicPressureDependent, ConstantPermeability >, + PorousSolid< ElasticOrthotropic, ConstantPermeability >, + PorousSolid< DruckerPragerExtended, CarmanKozenyPermeability >, + PorousSolid< ModifiedCamClay, CarmanKozenyPermeability >, + PorousSolid< DelftEgg, CarmanKozenyPermeability >, + PorousSolid< DruckerPrager, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPrager >, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPragerExtended >, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< ModifiedCamClay >, CarmanKozenyPermeability >, + PorousSolid< ElasticIsotropic, CarmanKozenyPermeability >, + PorousSolid< ElasticTransverseIsotropic, CarmanKozenyPermeability >, + PorousSolid< ElasticIsotropicPressureDependent, CarmanKozenyPermeability >, + PorousSolid< ElasticOrthotropic, CarmanKozenyPermeability >, PorousDamageSolid< DamageSpectral< ElasticIsotropic > >, PorousDamageSolid< DamageVolDev< ElasticIsotropic > >, PorousDamageSolid< Damage< ElasticIsotropic > > >::execute( constitutiveRelation, @@ -451,17 +473,28 @@ struct ConstitutivePassThru< CoupledSolidBase > CompressibleSolid< PressurePorosity, PressurePermeability >, CompressibleSolid< PressurePorosity, SlipDependentPermeability >, CompressibleSolid< PressurePorosity, WillisRichardsPermeability >, - PorousSolid< DruckerPragerExtended >, - PorousSolid< ModifiedCamClay >, - PorousSolid< DelftEgg >, - PorousSolid< DruckerPrager >, - PorousSolid< DuvautLionsSolid< DruckerPrager > >, - PorousSolid< DuvautLionsSolid< DruckerPragerExtended > >, - PorousSolid< DuvautLionsSolid< ModifiedCamClay > >, - PorousSolid< ElasticIsotropic >, - PorousSolid< ElasticTransverseIsotropic >, - PorousSolid< ElasticIsotropicPressureDependent >, - PorousSolid< ElasticOrthotropic >, + PorousSolid< DruckerPragerExtended, ConstantPermeability >, + PorousSolid< ModifiedCamClay, ConstantPermeability >, + PorousSolid< DelftEgg, ConstantPermeability >, + PorousSolid< DruckerPrager, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPrager >, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPragerExtended >, ConstantPermeability >, + PorousSolid< DuvautLionsSolid< ModifiedCamClay >, ConstantPermeability >, + PorousSolid< ElasticIsotropic, ConstantPermeability >, + PorousSolid< ElasticTransverseIsotropic, ConstantPermeability >, + PorousSolid< ElasticIsotropicPressureDependent, ConstantPermeability >, + PorousSolid< ElasticOrthotropic, ConstantPermeability >, + PorousSolid< DruckerPragerExtended, CarmanKozenyPermeability >, + PorousSolid< ModifiedCamClay, CarmanKozenyPermeability >, + PorousSolid< DelftEgg, CarmanKozenyPermeability >, + PorousSolid< DruckerPrager, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPrager >, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< DruckerPragerExtended >, CarmanKozenyPermeability >, + PorousSolid< DuvautLionsSolid< ModifiedCamClay >, CarmanKozenyPermeability >, + PorousSolid< ElasticIsotropic, CarmanKozenyPermeability >, + PorousSolid< ElasticTransverseIsotropic, CarmanKozenyPermeability >, + PorousSolid< ElasticIsotropicPressureDependent, CarmanKozenyPermeability >, + PorousSolid< ElasticOrthotropic, CarmanKozenyPermeability >, PorousDamageSolid< DamageSpectral< ElasticIsotropic > >, PorousDamageSolid< DamageVolDev< ElasticIsotropic > >, PorousDamageSolid< Damage< ElasticIsotropic > > >::execute( constitutiveRelation, From 2e55ebc7353496082ff74021f640478d835b23e2 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 22 Aug 2025 13:37:21 -0500 Subject: [PATCH 03/18] update kernelSpecs --- .../constitutive/ConstitutivePassThru.hpp | 2 +- .../multiphysics/kernelSpecs.json | 68 ++++++++++++------- .../solidMechanics/kernelSpecs.json | 9 ++- 3 files changed, 49 insertions(+), 30 deletions(-) diff --git a/src/coreComponents/constitutive/ConstitutivePassThru.hpp b/src/coreComponents/constitutive/ConstitutivePassThru.hpp index 0b0c16d8a2d..44a3e24ad26 100644 --- a/src/coreComponents/constitutive/ConstitutivePassThru.hpp +++ b/src/coreComponents/constitutive/ConstitutivePassThru.hpp @@ -328,7 +328,7 @@ struct ConstitutivePassThru< PorousSolidBase > PorousSolid< ElasticIsotropic, ConstantPermeability >, PorousSolid< ElasticTransverseIsotropic, ConstantPermeability >, PorousSolid< ElasticIsotropicPressureDependent, ConstantPermeability >, - PorousSolid< ElasticOrthotropic, ConstantPermeability > + PorousSolid< ElasticOrthotropic, ConstantPermeability >, PorousSolid< DruckerPragerExtended, CarmanKozenyPermeability >, PorousSolid< ModifiedCamClay, CarmanKozenyPermeability >, PorousSolid< DelftEgg, CarmanKozenyPermeability >, diff --git a/src/coreComponents/physicsSolvers/multiphysics/kernelSpecs.json b/src/coreComponents/physicsSolvers/multiphysics/kernelSpecs.json index 7acbc5cb996..bf248e898f3 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/kernelSpecs.json +++ b/src/coreComponents/physicsSolvers/multiphysics/kernelSpecs.json @@ -39,17 +39,28 @@ "CellElementSubRegion" ], "CONSTITUTIVE_TYPE": [ - "PorousSolid", - "PorousSolid", - "PorousSolid", - "PorousSolid", - "PorousSolid", - "PorousSolid", - "PorousSolid", - "PorousSolid", - "PorousSolid>", - "PorousSolid>", - "PorousSolid>", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid, ConstantPermeability>", + "PorousSolid, ConstantPermeability>", + "PorousSolid, ConstantPermeability>", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid, CarmanKozenyPermeability>", + "PorousSolid, CarmanKozenyPermeability>", + "PorousSolid, CarmanKozenyPermeability>", "PorousDamageSolid>", "PorousDamageSolid>", "PorousDamageSolid>" @@ -62,16 +73,16 @@ "H1_Pyramid_Lagrange1_Gauss5" ] }, - "explicit": [ "CellElementSubRegion#PorousSolid#H1_Tetrahedron_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Prism5_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Prism6_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Prism7_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Prism8_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Prism9_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Prism10_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Hexahedron_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Wedge_VEM_Gauss1", - "CellElementSubRegion#PorousSolid#H1_Prism11_VEM_Gauss1" ] + "explicit": [ "CellElementSubRegion#PorousSolid#H1_Tetrahedron_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Prism5_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Prism6_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Prism7_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Prism8_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Prism9_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Prism10_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Hexahedron_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Wedge_VEM_Gauss1", + "CellElementSubRegion#PorousSolid#H1_Prism11_VEM_Gauss1" ] }, "PoromechanicsEFEMKernels": { @@ -88,7 +99,8 @@ "CellElementSubRegion" ], "CONSTITUTIVE_TYPE": [ - "PorousSolid" + "PorousSolid", + "PorousSolid" ], "FE_TYPE": [ "H1_Hexahedron_Lagrange1_GaussLegendre2", @@ -117,10 +129,14 @@ "CellElementSubRegion" ], "CONSTITUTIVE_TYPE": [ - "PorousSolid", - "PorousSolid", - "PorousSolid", - "PorousSolid" + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid" ], "FE_TYPE": [ "H1_Hexahedron_Lagrange1_GaussLegendre2", diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernelSpecs.json b/src/coreComponents/physicsSolvers/solidMechanics/kernelSpecs.json index c359f28c403..3f5c772a80b 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernelSpecs.json +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernelSpecs.json @@ -92,8 +92,10 @@ "CellElementSubRegion" ], "CONSTITUTIVE_TYPE": [ - "PorousSolid", - "PorousSolid" + "PorousSolid", + "PorousSolid", + "PorousSolid", + "PorousSolid" ], "FE_TYPE": [ "H1_Hexahedron_Lagrange1_GaussLegendre2", @@ -129,7 +131,8 @@ "CellElementSubRegion" ], "CONSTITUTIVE_TYPE": [ - "PorousSolid" + "PorousSolid", + "PorousSolid" ], "FE_TYPE": [ "H1_Hexahedron_Lagrange1_GaussLegendre2", From a0dd6d7af8c9d0f44cb434d07e7435a3a0bd0b07 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 22 Aug 2025 17:37:25 -0500 Subject: [PATCH 04/18] update initializeState --- .../permeability/CarmanKozenyPermeability.cpp | 29 +++++++++++++++++++ .../permeability/CarmanKozenyPermeability.hpp | 6 ++++ .../constitutive/solid/PorousSolid.cpp | 2 +- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.cpp b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.cpp index f57f52ffd77..a6b6ee68d65 100644 --- a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.cpp +++ b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.cpp @@ -63,6 +63,35 @@ void CarmanKozenyPermeability::allocateConstitutiveData( dataRepository::Group & PermeabilityBase::allocateConstitutiveData( parent, numConstitutivePointsPerParentIndex ); } +void CarmanKozenyPermeability::initializeState() const +{ + localIndex const numE = m_permeability.size( 0 ); + integer constexpr numQuad = 1; // NOTE: enforcing 1 quadrature point + + auto permView = m_permeability.toView(); + real64 const permComponents[3] = { m_particleDiameter, + m_particleDiameter, + m_particleDiameter }; + + forAll< parallelDevicePolicy<> >( numE, [=] GEOS_HOST_DEVICE ( localIndex const ei ) + { + for( localIndex q = 0; q < numQuad; ++q ) + { + for( integer dim=0; dim < 3; ++dim ) + { + // The default value is -1 so if it still -1 it needs to be set to something physical + if( permView[ei][q][dim] < 0 ) + { + permView[ei][q][dim] = permComponents[dim]; + } + } + } + } ); +} + +void CarmanKozenyPermeability::postInputInitialization() +{} + REGISTER_CATALOG_ENTRY( ConstitutiveBase, CarmanKozenyPermeability, string const &, Group * const ) } diff --git a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp index 2d7605b4871..06f4d2712ef 100644 --- a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp @@ -121,6 +121,12 @@ class CarmanKozenyPermeability : public PermeabilityBase static constexpr char const * anisotropyString() { return "anisotropy"; } } viewKeys; + virtual void initializeState() const override final; + +protected: + + virtual void postInputInitialization() override; + private: /// dPermeability_dPorosity diff --git a/src/coreComponents/constitutive/solid/PorousSolid.cpp b/src/coreComponents/constitutive/solid/PorousSolid.cpp index 3bb62aa9ed9..dc81c893683 100644 --- a/src/coreComponents/constitutive/solid/PorousSolid.cpp +++ b/src/coreComponents/constitutive/solid/PorousSolid.cpp @@ -52,7 +52,7 @@ template< typename SOLID_TYPE, typename PERM_TYPE > void PorousSolid< SOLID_TYPE, PERM_TYPE >::initializeState() const { - CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >::initializeState(); + this->CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >::initializeState(); } // Register all PorousSolid model types. From 75d73e23edf0c0aca377e19cf506d21ff4cc9dad Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 22 Aug 2025 17:44:39 -0500 Subject: [PATCH 05/18] add a smoke test --- ...oElastic_CarmanKozenyPermeability_base.xml | 175 ++++++++++++++++++ ...Elastic_CarmanKozenyPermeability_smoke.xml | 88 +++++++++ 2 files changed, 263 insertions(+) create mode 100644 inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml create mode 100644 inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_smoke.xml diff --git a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml new file mode 100644 index 00000000000..ddb1b4416ab --- /dev/null +++ b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_smoke.xml b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_smoke.xml new file mode 100644 index 00000000000..97e712cd693 --- /dev/null +++ b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_smoke.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 22872e6521299eac20e6ddc0c95b022463c2fdd2 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Mon, 25 Aug 2025 09:48:20 -0500 Subject: [PATCH 06/18] adjust catalogName --- .../constitutive/solid/PorousSolid.cpp | 2 +- .../constitutive/solid/PorousSolid.hpp | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/coreComponents/constitutive/solid/PorousSolid.cpp b/src/coreComponents/constitutive/solid/PorousSolid.cpp index dc81c893683..3bb62aa9ed9 100644 --- a/src/coreComponents/constitutive/solid/PorousSolid.cpp +++ b/src/coreComponents/constitutive/solid/PorousSolid.cpp @@ -52,7 +52,7 @@ template< typename SOLID_TYPE, typename PERM_TYPE > void PorousSolid< SOLID_TYPE, PERM_TYPE >::initializeState() const { - this->CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >::initializeState(); + CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE >::initializeState(); } // Register all PorousSolid model types. diff --git a/src/coreComponents/constitutive/solid/PorousSolid.hpp b/src/coreComponents/constitutive/solid/PorousSolid.hpp index 78326122f61..2df4c322c59 100644 --- a/src/coreComponents/constitutive/solid/PorousSolid.hpp +++ b/src/coreComponents/constitutive/solid/PorousSolid.hpp @@ -24,6 +24,7 @@ #include "constitutive/solid/CoupledSolid.hpp" #include "constitutive/solid/porosity/BiotPorosity.hpp" #include "constitutive/solid/SolidBase.hpp" +#include "constitutive/permeability/ConstantPermeability.hpp" namespace geos { @@ -352,7 +353,17 @@ class PorousSolid : public CoupledSolid< SOLID_TYPE, BiotPorosity, PERM_TYPE > * @brief Catalog name * @return Static catalog string */ - static string catalogName() { return string( "Porous" ) + SOLID_TYPE::catalogName(); } + static string catalogName() + { + if constexpr ( std::is_same_v< PERM_TYPE, ConstantPermeability > ) // default case + { + return string( "Porous" ) + SOLID_TYPE::catalogName(); + } + else // special cases + { + return string( "Porous" ) + SOLID_TYPE::catalogName() + PERM_TYPE::catalogName(); + } + } /** * @brief Get catalog name From d378c60c5a55560eb1c9e5207d16791641ebe817 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Mon, 25 Aug 2025 09:51:23 -0500 Subject: [PATCH 07/18] modify smoke test --- ...oElastic_CarmanKozenyPermeability_base.xml | 2 +- ...Elastic_CarmanKozenyPermeability_smoke.xml | 29 ++----------------- 2 files changed, 4 insertions(+), 27 deletions(-) diff --git a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml index ddb1b4416ab..33fc6ce28e9 100644 --- a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml +++ b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml @@ -53,7 +53,7 @@ - + target="/Outputs/vtkOutput"/> - - - - - - - + - - - - From 10e7bcb306bbecb19aa203eb413976c3dcaa09b6 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Mon, 25 Aug 2025 10:09:44 -0500 Subject: [PATCH 08/18] make the equation consistent with ref --- .../constitutive/permeability/CarmanKozenyPermeability.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp index 06f4d2712ef..e6bc96d5207 100644 --- a/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp +++ b/src/coreComponents/constitutive/permeability/CarmanKozenyPermeability.hpp @@ -149,7 +149,7 @@ void CarmanKozenyPermeabilityUpdate::compute( real64 const & porosity, arraySlice1d< real64 > const & permeability, arraySlice1d< real64 > const & dPerm_dPorosity ) const { - real64 const constant = pow( m_sphericity*m_particleDiameter, 2 ) / 180; + real64 const constant = pow( m_sphericity*m_particleDiameter, 2 ) / 150; real64 const permValue = constant * pow( porosity, 3 )/ pow( (1 - porosity), 2 ); From bfc1658bd619e8a886b0c2d34607ab1df206b03a Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Mon, 25 Aug 2025 11:12:07 -0500 Subject: [PATCH 09/18] uncrustify --- src/coreComponents/constitutive/ConstitutivePassThru.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreComponents/constitutive/ConstitutivePassThru.hpp b/src/coreComponents/constitutive/ConstitutivePassThru.hpp index 44a3e24ad26..1709c9d3a5f 100644 --- a/src/coreComponents/constitutive/ConstitutivePassThru.hpp +++ b/src/coreComponents/constitutive/ConstitutivePassThru.hpp @@ -340,7 +340,7 @@ struct ConstitutivePassThru< PorousSolidBase > PorousSolid< ElasticTransverseIsotropic, CarmanKozenyPermeability >, PorousSolid< ElasticIsotropicPressureDependent, CarmanKozenyPermeability >, PorousSolid< ElasticOrthotropic, CarmanKozenyPermeability > >::execute( constitutiveRelation, - std::forward< LAMBDA >( lambda ) ); + std::forward< LAMBDA >( lambda ) ); } }; From 7f2c9bae1d2a8cd42bc978b8e7da64d614a1f3d7 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Tue, 26 Aug 2025 08:42:22 -0500 Subject: [PATCH 10/18] address review comment --- .../constitutive/ConstitutivePassThru.hpp | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/src/coreComponents/constitutive/ConstitutivePassThru.hpp b/src/coreComponents/constitutive/ConstitutivePassThru.hpp index 1709c9d3a5f..48467e5c1d8 100644 --- a/src/coreComponents/constitutive/ConstitutivePassThru.hpp +++ b/src/coreComponents/constitutive/ConstitutivePassThru.hpp @@ -267,29 +267,6 @@ struct ConstitutivePassThru< NullModel > }; -/** - * Specialization for the PorousSolid< ElasticIsotropic, ConstantPermeability > model. - */ -template<> -struct ConstitutivePassThru< PorousSolid< ElasticIsotropic, ConstantPermeability > > -{ - template< typename LAMBDA > - static - void execute( ConstitutiveBase & constitutiveRelation, LAMBDA && lambda ) - { - if( auto * const ptr = dynamic_cast< PorousSolid< ElasticIsotropic, ConstantPermeability > * >( &constitutiveRelation ) ) - { - lambda( *ptr ); - } - else - { - GEOS_ERROR( "ConstitutivePassThru< PorousSolid< ElasticIsotropic > >::execute failed on constitutive relation " - << constitutiveRelation.getDataContext() << " with type " - << LvArray::system::demangleType( constitutiveRelation ) ); - } - } -}; - /** * Specialization for the Damage models. */ From 8a6461c00fdc7e7d773a1e41f1f07ba113fc2830 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 19 Sep 2025 11:22:19 -0500 Subject: [PATCH 11/18] add a smoke test with sequential solver --- ...oElastic_CarmanKozenyPermeability_base.xml | 36 ------- ...ic_CarmanKozenyPermeability_fim_smoke.xml} | 33 ++++++- ...manKozenyPermeability_sequential_smoke.xml | 96 +++++++++++++++++++ 3 files changed, 124 insertions(+), 41 deletions(-) rename inputFiles/poromechanics/{PoroElastic_CarmanKozenyPermeability_smoke.xml => PoroElastic_CarmanKozenyPermeability_fim_smoke.xml} (63%) create mode 100644 inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_sequential_smoke.xml diff --git a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml index 33fc6ce28e9..f85c7e1fdbe 100644 --- a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml +++ b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_base.xml @@ -1,35 +1,4 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_smoke.xml b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_fim_smoke.xml similarity index 63% rename from inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_smoke.xml rename to inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_fim_smoke.xml index 8a0cd6aeda9..6c41d268315 100644 --- a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_smoke.xml +++ b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_fim_smoke.xml @@ -4,7 +4,33 @@ - + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 735f23628a85d04771868618a0f6147a4200e49e Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 19 Sep 2025 11:34:41 -0500 Subject: [PATCH 12/18] update ats --- .../poromechanics/poroElasticCoupling.ats | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/inputFiles/poromechanics/poroElasticCoupling.ats b/inputFiles/poromechanics/poroElasticCoupling.ats index 4627c12c41a..c857d700877 100644 --- a/inputFiles/poromechanics/poroElasticCoupling.ats +++ b/inputFiles/poromechanics/poroElasticCoupling.ats @@ -288,6 +288,26 @@ def _build_PoroElasticGravity_cases(): description, restartcheck_params) +def _build_PoroElasticCarmanKozenyFIM_cases(): + description = Description( + "Poroelastic problem with CarmanKozeny permeability model (fim) ", "auto", + "Jian Huang", True) + restartcheck_params = {"atol": 1.0e-5, "rtol": 2.0e-7} + return _build_poro_elastic_coupling_case( + "PoroElastic_CarmanKozenyPermeability_fim_smoke.xml", (0, 50), + ((1, 1, 1), (2, 2, 1)), description, restartcheck_params) + + +def _build_PoroElasticCarmanKozenySequential_cases(): + description = Description( + "Poroelastic problem with CarmanKozeny permeability model (Sequential) ", "auto", + "Jian Huang", True) + restartcheck_params = {"atol": 1.0e-5, "rtol": 2.0e-7} + return _build_poro_elastic_coupling_case( + "PoroElastic_CarmanKozenyPermeability_sequential_smoke.xml", (0, 50), + ((1, 1, 1), (2, 2, 1)), description, restartcheck_params) + + def test_poro_elastic_coupling_cases(): deck_instances = [ _build_Terzaghi_cases(), @@ -308,7 +328,9 @@ def test_poro_elastic_coupling_cases(): _build_PoroStaircaseCO2PeacemanWell_sequential_cases(), _build_PoroElasticPEBICO2FIM_cases(), _build_PoroElasticPEBICO2Sequential_cases(), - _build_PoroElasticGravity_cases() + _build_PoroElasticGravity_cases(), + _build_PoroElasticCarmanKozenyFIM_cases(), + _build_PoroElasticCarmanKozenySequential_cases() ] generate_geos_tests(deck_instances) From 89a717f728c669ec913d770d9376c7296d8b0a2c Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 26 Sep 2025 17:05:14 -0500 Subject: [PATCH 13/18] add missing comma --- .../physicsSolvers/solidMechanics/kernelSpecs.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreComponents/physicsSolvers/solidMechanics/kernelSpecs.json b/src/coreComponents/physicsSolvers/solidMechanics/kernelSpecs.json index 71dd6ac9ddf..ca527443f5a 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/kernelSpecs.json +++ b/src/coreComponents/physicsSolvers/solidMechanics/kernelSpecs.json @@ -95,8 +95,8 @@ "PorousSolid", "PorousSolid", "PorousSolid", - "PorousSolid" - "PorousSolid, ConstantPermeability>" + "PorousSolid", + "PorousSolid, ConstantPermeability>", "PorousSolid, CarmanKozenyPermeability>" ], "FE_TYPE": [ From 4aaaf07b30cfb5272be05adccdb1a8f188729808 Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 26 Sep 2025 19:03:32 -0500 Subject: [PATCH 14/18] update .integrated_tests.yaml --- .integrated_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.integrated_tests.yaml b/.integrated_tests.yaml index c30bb9fd6d9..44338fed194 100644 --- a/.integrated_tests.yaml +++ b/.integrated_tests.yaml @@ -1,6 +1,6 @@ baselines: bucket: geosx - baseline: integratedTests/baseline_integratedTests-pr3779-13734-44eed3f + baseline: integratedTests/baseline_integratedTests-pr3790-13872-89a717f allow_fail: all: '' From d3cb7d2789a290ff6c4a699cff344f2c97c8c3ed Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Fri, 26 Sep 2025 19:06:27 -0500 Subject: [PATCH 15/18] update BASELINE_NOTES.md --- BASELINE_NOTES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/BASELINE_NOTES.md b/BASELINE_NOTES.md index 91fd5145d48..cba0fd8acd5 100644 --- a/BASELINE_NOTES.md +++ b/BASELINE_NOTES.md @@ -6,6 +6,10 @@ This file is designed to track changes to the integrated test baselines. Any developer who updates the baseline ID in the .integrated_tests.yaml file is expected to create an entry in this file with the pull request number, date, and their justification for rebaselining. These notes should be in reverse-chronological order, and use the following time format: (YYYY-MM-DD). +PR #3790 (2025-09-26) +===================== +Enable Kozeny-Carman Permeability for PorousSolid. + PR #3779 (2025-09-21) ===================== Add new inputs for function input var scaling. Add new Multiscale linear solver parameters XML block. From bb7b2860c9af52b03ca7f2136bf2a4e89d843efe Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Mon, 29 Sep 2025 08:48:55 -0500 Subject: [PATCH 16/18] fix partition issue for smoke tests --- .../PoroElastic_CarmanKozenyPermeability_fim_smoke.xml | 4 ++-- .../PoroElastic_CarmanKozenyPermeability_sequential_smoke.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_fim_smoke.xml b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_fim_smoke.xml index 6c41d268315..daa0e4471c0 100644 --- a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_fim_smoke.xml +++ b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_fim_smoke.xml @@ -38,8 +38,8 @@ xCoords="{ 0, 10 }" yCoords="{ 0, 1 }" zCoords="{ 0, 1 }" - nx="{ 25 }" - ny="{ 1 }" + nx="{ 24 }" + ny="{ 2 }" nz="{ 1 }" cellBlockNames="{ cb1 }"/> diff --git a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_sequential_smoke.xml b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_sequential_smoke.xml index e5d4652eb8b..696d4b7d478 100644 --- a/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_sequential_smoke.xml +++ b/inputFiles/poromechanics/PoroElastic_CarmanKozenyPermeability_sequential_smoke.xml @@ -46,8 +46,8 @@ xCoords="{ 0, 10 }" yCoords="{ 0, 1 }" zCoords="{ 0, 1 }" - nx="{ 25 }" - ny="{ 1 }" + nx="{ 24 }" + ny="{ 2 }" nz="{ 1 }" cellBlockNames="{ cb1 }"/> From 7df089036c302dad94a58e87eb55c95020d91e7b Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Mon, 29 Sep 2025 10:28:54 -0500 Subject: [PATCH 17/18] update .integrated_tests.yaml --- .integrated_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.integrated_tests.yaml b/.integrated_tests.yaml index 44338fed194..c9a0c08f4ff 100644 --- a/.integrated_tests.yaml +++ b/.integrated_tests.yaml @@ -1,6 +1,6 @@ baselines: bucket: geosx - baseline: integratedTests/baseline_integratedTests-pr3790-13872-89a717f + baseline: integratedTests/baseline_integratedTests-pr3790-13899-bb7b286 allow_fail: all: '' From 0614d87d10a214259551218769a383fb4e6a753c Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Mon, 29 Sep 2025 10:30:05 -0500 Subject: [PATCH 18/18] update BASELINE_NOTES.md --- BASELINE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BASELINE_NOTES.md b/BASELINE_NOTES.md index cba0fd8acd5..9d19d2adff5 100644 --- a/BASELINE_NOTES.md +++ b/BASELINE_NOTES.md @@ -6,7 +6,7 @@ This file is designed to track changes to the integrated test baselines. Any developer who updates the baseline ID in the .integrated_tests.yaml file is expected to create an entry in this file with the pull request number, date, and their justification for rebaselining. These notes should be in reverse-chronological order, and use the following time format: (YYYY-MM-DD). -PR #3790 (2025-09-26) +PR #3790 (2025-09-29) ===================== Enable Kozeny-Carman Permeability for PorousSolid.