Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9aa6887
enable Kozeny-Carman Permeability for PorousSolid
jhuang2601 Aug 22, 2025
0d55208
update ConstitutivePassThru.hpp
jhuang2601 Aug 22, 2025
2e55ebc
update kernelSpecs
jhuang2601 Aug 22, 2025
a0dd6d7
update initializeState
jhuang2601 Aug 22, 2025
75d73e2
add a smoke test
jhuang2601 Aug 22, 2025
c979402
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Aug 22, 2025
22872e6
adjust catalogName
jhuang2601 Aug 25, 2025
d378c60
modify smoke test
jhuang2601 Aug 25, 2025
10e7bcb
make the equation consistent with ref
jhuang2601 Aug 25, 2025
9bdab83
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Aug 25, 2025
bfc1658
uncrustify
jhuang2601 Aug 25, 2025
7f2c9ba
address review comment
jhuang2601 Aug 26, 2025
ef80bf5
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Aug 26, 2025
e4f47b9
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Aug 29, 2025
3fff623
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Sep 9, 2025
17b5305
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Sep 12, 2025
335ac3c
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Sep 15, 2025
c5db858
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Sep 18, 2025
8a6461c
add a smoke test with sequential solver
jhuang2601 Sep 19, 2025
735f236
update ats
jhuang2601 Sep 19, 2025
1c663ee
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Sep 19, 2025
782f5df
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Sep 22, 2025
2cc391d
Merge branch 'develop' into feature/jhuang/permeability_PorousSolid
jhuang2601 Sep 26, 2025
89a717f
add missing comma
jhuang2601 Sep 26, 2025
4aaaf07
update .integrated_tests.yaml
jhuang2601 Sep 27, 2025
d3cb7d2
update BASELINE_NOTES.md
jhuang2601 Sep 27, 2025
bb7b286
fix partition issue for smoke tests
jhuang2601 Sep 29, 2025
7df0890
update .integrated_tests.yaml
jhuang2601 Sep 29, 2025
0614d87
update BASELINE_NOTES.md
jhuang2601 Sep 29, 2025
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
@@ -0,0 +1,175 @@
<Problem>
<Solvers
gravityVector="{ 0.0, 0.0, 0.0 }">
<!-- SPHINX_POROELASTIC_SOLVER -->
<SinglePhasePoromechanics
name="PoroelasticitySolver"
solidSolverName="LinearElasticitySolver"
flowSolverName="SinglePhaseFlowSolver"
logLevel="1"
targetRegions="{ Domain }">
<LinearSolverParameters
directParallel="0"/>
</SinglePhasePoromechanics>

<SolidMechanicsLagrangianFEM
name="LinearElasticitySolver"
timeIntegrationOption="QuasiStatic"
logLevel="1"
discretization="FE1"
targetRegions="{ Domain }"/>

<SinglePhaseFVM
name="SinglePhaseFlowSolver"
logLevel="1"
discretization="singlePhaseTPFA"
targetRegions="{ Domain }"/>
</Solvers>

<!-- SPHINX_POROELASTIC_SOLVER_END -->


<!-- SPHINX_POROELASTIC_NUMERICAL_METHODS -->
<NumericalMethods>
<FiniteElements>
<FiniteElementSpace
name="FE1"
order="1"/>
</FiniteElements>

<FiniteVolume>
<TwoPointFluxApproximation
name="singlePhaseTPFA"/>
</FiniteVolume>
</NumericalMethods>

<!-- SPHINX_POROELASTIC_NUMERICAL_METHODS_END -->
<ElementRegions>
<CellElementRegion
name="Domain"
cellBlocks="{ * }"
materialList="{ fluid, porousRock }"/>
</ElementRegions>

<!-- SPHINX_POROELASTIC_CONSTITUTIVE -->
<Constitutive>
<PorousElasticIsotropicCarmanKozenyPermeability
name="porousRock"
solidModelName="skeleton"
porosityModelName="skeletonPorosity"
permeabilityModelName="skeletonPerm"/>

<ElasticIsotropic
name="skeleton"
defaultDensity="0"
defaultYoungModulus="1.0e4"
defaultPoissonRatio="0.2"/>

<CompressibleSinglePhaseFluid
name="fluid"
defaultDensity="1"
defaultViscosity="1.0"
referencePressure="0.0"
referenceDensity="1"
compressibility="0.0e0"
referenceViscosity="1"
viscosibility="0.0"/>

<BiotPorosity
name="skeletonPorosity"
defaultGrainBulkModulus="1.0e27"
defaultReferencePorosity="0.3"/>

<CarmanKozenyPermeability
name="skeletonPerm"
particleDiameter="0.0002"
sphericity="1.0"/>
</Constitutive>

<!-- SPHINX_POROELASTIC_CONSTITUTIVE_END -->
<FieldSpecifications>

<FieldSpecification
name="initialPressure"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain/cb1"
fieldName="pressure"
scale="0.0"/>

<FieldSpecification
name="xInitialDisplacement"
initialCondition="1"
setNames="{ all }"
objectPath="nodeManager"
fieldName="totalDisplacement"
component="0"
scale="0.0"/>

<FieldSpecification
name="yInitialDisplacement"
initialCondition="1"
setNames="{ all }"
objectPath="nodeManager"
fieldName="totalDisplacement"
component="1"
scale="0.0"/>

<FieldSpecification
name="zInitialDisplacement"
initialCondition="1"
setNames="{ all }"
objectPath="nodeManager"
fieldName="totalDisplacement"
component="2"
scale="0.0"/>

<FieldSpecification
name="xnegconstraint"
objectPath="nodeManager"
fieldName="totalDisplacement"
component="0"
scale="0.0"
setNames="{ xpos }"/>

<FieldSpecification
name="yconstraint"
objectPath="nodeManager"
fieldName="totalDisplacement"
component="1"
scale="0.0"
setNames="{ yneg, ypos }"/>

<FieldSpecification
name="zconstraint"
objectPath="nodeManager"
fieldName="totalDisplacement"
component="2"
scale="0.0"
setNames="{ zneg, zpos }"/>

<Traction
name="xposconstraint"
objectPath="faceManager"
direction="{ 1, 0, 0 }"
scale="1.0e0"
setNames="{ xneg }"
functionName="timeFunction"/>

<FieldSpecification
name="boundaryPressure"
setNames="{ xneg }"
objectPath="faceManager"
fieldName="pressure"
scale="0.0"/>
</FieldSpecifications>

<Functions>
<TableFunction
name="timeFunction"
inputVarNames="{ time }"
coordinates="{ 0.0, 0.1e-09, 1e7 }"
values="{ 0.0, 1.0, 1.0 }"/>
</Functions>

</Problem>
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?xml version="1.0" ?>

<Problem>
<Included>
<File name="./PoroElastic_CarmanKozenyPermeability_base.xml"/>
</Included>
<!-- SPHINX_POROELASTIC_MESH -->
<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{ C3D8 }"
xCoords="{ 0, 10 }"
yCoords="{ 0, 1 }"
zCoords="{ 0, 1 }"
nx="{ 25 }"
ny="{ 1 }"
nz="{ 1 }"
cellBlockNames="{ cb1 }"/>
</Mesh>

<!-- SPHINX_POROELASTIC_MESH_END -->
<Events
maxTime="90.0">
<!--This event is applied every 1.0s. The targetExactTimestep
flag allows this event to request a dt modification to match an
integer multiple of the timeFrequency. -->
<PeriodicEvent
name="outputs"
timeFrequency="10.0"
target="/Outputs/vtkOutput"/>

<PeriodicEvent
name="solverApplication0"
endTime="1.e-5"
forceDt="1.e-5"
target="/Solvers/PoroelasticitySolver"/>

<PeriodicEvent
name="solverApplication1"
beginTime="1.e-5"
endTime="1.0"
forceDt="0.99999"
target="/Solvers/PoroelasticitySolver"/>

<PeriodicEvent
name="solverApplication2"
beginTime="1.0"
endTime="90.0"
forceDt="1.0"
target="/Solvers/PoroelasticitySolver"/>

<PeriodicEvent
name="restarts"
cycleFrequency="50"
target="/Outputs/restartOutput"/>
</Events>

<Outputs>
<VTK
name="vtkOutput"/>

<Restart
name="restartOutput"/>
</Outputs>
</Problem>
107 changes: 70 additions & 37 deletions src/coreComponents/constitutive/ConstitutivePassThru.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 );
}
Expand Down Expand Up @@ -318,18 +318,29 @@ 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,
std::forward< LAMBDA >( lambda ) );
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 ) );
}
};

Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down
Loading
Loading