Skip to content

Commit

Permalink
Merge branch 'develop' into feature/dgWavePropagator
Browse files Browse the repository at this point in the history
  • Loading branch information
sframba authored Jan 16, 2025
2 parents b2a5116 + 8f9126c commit d1a4718
Show file tree
Hide file tree
Showing 92 changed files with 2,611 additions and 521 deletions.
2 changes: 1 addition & 1 deletion .integrated_tests.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
baselines:
bucket: geosx
baseline: integratedTests/baseline_integratedTests-pr3495-9552-257c87e
baseline: integratedTests/baseline_integratedTests-pr3228-9676-61994fe
allow_fail:
all: ''
streak: ''
4 changes: 4 additions & 0 deletions BASELINE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 #3228 (2024-01-15)
=====================
deltaVolume added in multiphase.

PR #3495 (2024-01-08)
=====================
Add missing logic to support switching from fixed mass rate injection rate constraint to max injection pressure.
Expand Down
14 changes: 10 additions & 4 deletions examples/ObjectCatalog/Base.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 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) 2023-2024 Chevron
* Copyright (c) 2019- GEOS/GEOSX Contributors
* All rights reserved
*
Expand Down Expand Up @@ -46,7 +46,7 @@ class Parameter
class Base
{
public:
Base( int junk, double const & junk2, Parameter& pbv )
Base( int junk, double const & junk2, Parameter & pbv )
{
GEOS_LOG( "calling Base constructor with arguments (" << junk << " " << junk2 << ")" );
}
Expand All @@ -56,14 +56,20 @@ class Base
GEOS_LOG( "calling Base destructor" );
}

using CatalogInterface = dataRepository::CatalogInterface< Base, int, double const &, Parameter& >;
static CatalogInterface::CatalogType& getCatalog()
using CatalogInterface = dataRepository::CatalogInterface< Base, int, double const &, Parameter & >;
static CatalogInterface::CatalogType & getCatalog()
{
static CatalogInterface::CatalogType catalog;
return catalog;
}

virtual std::string const getName() const = 0;

static DataContext const & getDataContext()
{
static DataFileContext const context = DataFileContext( "Base Test Class", __FILE__, __LINE__ );
return context;
}
};

#endif
12 changes: 8 additions & 4 deletions examples/ObjectCatalog/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 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) 2023-2024 Chevron
* Copyright (c) 2019- GEOS/GEOSX Contributors
* All rights reserved
*
Expand All @@ -31,10 +31,14 @@ int main( int argc, char *argv[] )


GEOS_LOG( "Attempting to create a Derived1 object" );
std::unique_ptr<Base> derived1 = Base::CatalogInterface::Factory( "derived1", junk, junk2, param );
std::unique_ptr< Base > derived1 = Base::CatalogInterface::factory( "derived1",
Base::getDataContext(),
junk, junk2, param );
GEOS_LOG( "Attempting to create a Derived2 object" );
std::unique_ptr<Base> derived2 = Base::CatalogInterface::Factory( "derived2", junk, junk3, param );
std::unique_ptr< Base > derived2 = Base::CatalogInterface::factory( "derived2",
Base::getDataContext(),
junk, junk3, param );

Base::CatalogInterface::catalog_cast<Derived1>( *(derived2.get()));
Base::CatalogInterface::catalog_cast< Derived1 >( *(derived2.get()));
GEOS_LOG( "EXITING MAIN" );
}
1 change: 1 addition & 0 deletions inputFiles/poromechanicsFractures/co2flash.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
FlashModel CO2Solubility 1e6 10e7 5e4 367.15 369.15 1 0
2 changes: 2 additions & 0 deletions inputFiles/poromechanicsFractures/elevation.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
1e4
2 changes: 2 additions & 0 deletions inputFiles/poromechanicsFractures/initCO2CompFrac.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0.001
0.001
2 changes: 2 additions & 0 deletions inputFiles/poromechanicsFractures/initTemp.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
368.15
368.15
2 changes: 2 additions & 0 deletions inputFiles/poromechanicsFractures/initWaterCompFrac.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0.999
0.999
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
<Problem>
<Constitutive>
<PorousElasticIsotropic
name="porousRock"
permeabilityModelName="rockPerm"
porosityModelName="rockPorosity"
solidModelName="rock" />

<ElasticIsotropic
name="rock"
defaultDensity="2927"
defaultPoissonRatio="0.15"
defaultYoungModulus="14950000000" />

<CO2BrinePhillipsFluid
name="fluid"
logLevel="1"
phaseNames="{ gas, water }"
componentNames="{ co2, water }"
componentMolarWeight="{ 44e-3, 18e-3 }"
phasePVTParaFiles="{ pvtgas.txt, pvtliquid.txt }"
flashModelParaFile="co2flash.txt"/>

<BiotPorosity
name="rockPorosity"
defaultReferencePorosity="0.3"
defaultGrainBulkModulus="7.12e30" />

<ConstantPermeability
name="rockPerm"
permeabilityComponents="{ 1.0e-12, 1.0e-12, 1.0e-12 }" />
<!-- Material inside the fault -->
<CompressibleSolidParallelPlatesPermeability
name="faultFilling"
solidModelName="nullSolid"
porosityModelName="fracturePorosity"
permeabilityModelName="fracturePerm"/>

<PressurePorosity
name="fracturePorosity"
defaultReferencePorosity="1.00"
referencePressure="0e6"
compressibility="0.0"/>

<ParallelPlatesPermeability
name="fracturePerm"/>

<Coulomb
name="fractureContact"
cohesion="40.0e6"
frictionCoefficient="0.01"/>

<HydraulicApertureTable
name="hApertureModel"
apertureTableName="apertureTable"/>

<NullModel
name="nullSolid"/>

<TableRelativePermeability
name="relperm"
phaseNames="{ gas, water }"
wettingNonWettingRelPermTableNames="{ waterRelativePermeabilityTable,
gasRelativePermeabilityTable }"/>

</Constitutive>

<FieldSpecifications>

<FieldSpecification
name="fracPorosity"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Fault"
fieldName="fracturePorosity_porosity"
scale="1.00"/>

<FieldSpecification
name="xconstraint"
component="0"
fieldName="totalDisplacement"
objectPath="nodeManager"
scale="0.0"
setNames="{ xnegFace, xposFace }" />

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

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

<Traction
name="tractionTop"
objectPath="faceManager"
tractionType="normal"
scale="-1e7"
setNames="{ zposFace }"/>

<HydrostaticEquilibrium
name="equil"
objectPath="ElementRegions"
datumElevation="-2000"
datumPressure="2e7"
initialPhaseName="water"
componentNames="{ co2, water }"
componentFractionVsElevationTableNames="{ initCO2CompFracTable,
initWaterCompFracTable }"
temperatureVsElevationTableName="initTempTable"/>

<SourceFlux
name="sourceTerm"
objectPath="ElementRegions"
component="0"
scale="-1e5"
setNames="{ source }"/>

</FieldSpecifications>

<ElementRegions>
<CellElementRegion
name="Region"
cellBlocks="{ 2_hexahedra, 1_hexahedra, 0_hexahedra }"
materialList="{ fluid, relperm, porousRock }"/>

<SurfaceElementRegion
name="Fault"
faceBlock="fracture"
materialList="{ fluid, relperm, faultFilling, fractureContact, hApertureModel }"
defaultAperture="1e-3"/>
</ElementRegions>

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

<FiniteVolume>
<TwoPointFluxApproximation
name="TPFA"/>
<TwoPointFluxApproximation
name="TPFA_stab"/>
</FiniteVolume>
</NumericalMethods>

<Tasks>
<MultiphasePoromechanicsConformingFracturesInitialization
logLevel="1"
name="poroelasticityPreEquilibrationStep"
poromechanicsSolverName="poroFractureSolver"/>
</Tasks>

<Outputs>
<VTK
name="vtkOutput"
fieldNames="{ initialPressure}" />

<Restart
name="restartOutput"/>
</Outputs>

<Functions>

<TableFunction
name="initCO2CompFracTable"
coordinateFiles="{ elevation.txt }"
voxelFile="initCO2CompFrac.txt"/>

<TableFunction
name="initWaterCompFracTable"
coordinateFiles="{ elevation.txt }"
voxelFile="initWaterCompFrac.txt"/>

<TableFunction
name="initTempTable"
coordinateFiles="{ elevation.txt }"
voxelFile="initTemp.txt"/>

<TableFunction
name="apertureTable"
coordinates="{ -1.0e-3, 0.0 }"
values="{ 1.0e-3, 1.0e-3 }"
/>

<TableFunction
name="waterRelativePermeabilityTable"
coordinateFiles="{ phaseVolFraction_water.txt }"
voxelFile="relPerm_water.txt"/>

<TableFunction
name="gasRelativePermeabilityTable"
coordinateFiles="{ phaseVolFraction_gas.txt }"
voxelFile="relPerm_gas.txt"/>

</Functions>
</Problem>
Loading

0 comments on commit d1a4718

Please sign in to comment.