diff --git a/.integrated_tests.yaml b/.integrated_tests.yaml index d05fec1255c..373eae27d7a 100644 --- a/.integrated_tests.yaml +++ b/.integrated_tests.yaml @@ -1,7 +1,6 @@ baselines: bucket: geosx - baseline: integratedTests/baseline_integratedTests-pr4164-17838-91151f5 - + baseline: integratedTests/baseline_integratedTests-pr4165-17850-4a6ed2e allow_fail: all: '' - streak: '' + streak: '' \ No newline at end of file diff --git a/BASELINE_NOTES.md b/BASELINE_NOTES.md index c01f8bc7a83..d18697ae942 100644 --- a/BASELINE_NOTES.md +++ b/BASELINE_NOTES.md @@ -5,6 +5,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 #4165 (2026-10-29) +===================== +Add zero salinity, non-default compressibility pvt driver test + PR #4164 (2026-10-26) ===================== Add a `Group` statistics layer for fracture surfaces. diff --git a/inputFiles/constitutiveDriver/testPVT_CO2Brine.xml b/inputFiles/constitutiveDriver/testPVT_CO2Brine.xml index b53ab93aac3..7b411729543 100644 --- a/inputFiles/constitutiveDriver/testPVT_CO2Brine.xml +++ b/inputFiles/constitutiveDriver/testPVT_CO2Brine.xml @@ -93,6 +93,18 @@ outputMassDensity="1" output="testPVT_CO2Brine_testCo2BrinePhillipsMixtureThermalB.txt" logLevel="1" /> + @@ -126,6 +138,9 @@ + + diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp index da8b4c868e9..53eb3f221d4 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PhillipsBrineDensity.cpp @@ -74,7 +74,8 @@ void calculateBrineDensity( PTTableCoordinates const & tableCoords, void calculatePureWaterDensity( PTTableCoordinates const & tableCoords, string const & functionName, - array1d< real64 > const & densities ) + array1d< real64 > const & densities, + real64 const waterCompressibility ) { // if no salinity, we fall back to the standard approach in three steps // 1- Get the saturation density as a function of temperature @@ -102,9 +103,6 @@ void calculatePureWaterDensity( PTTableCoordinates const & tableCoords, // Step 2: get the saturation pressure real64 const waterSatPressure = waterSatPressureTable->evaluate( &T ); // Step 3: get the pure water density - // Note: for now, we keep a constant water compressibility for consistency with the Ezrokhi model - // In the future, we should query the water compressibility as a function of pressure and temperature in a table - real64 const waterCompressibility = 4.5e-10; // Pa-1 // TODO: consolidate to a unique file as Dick started doing densities[j*nPressures+i] = waterSatDensity * exp( waterCompressibility * ( P - waterSatPressure ) ); } } @@ -147,7 +145,8 @@ TableFunction const * makeDensityTable( BrineFluidParameters const & brineFluidP { // the Phillips correlation is inaccurate in the absence of salinity. // since this is a very frequent case, we implement an alternate (more accurate) method below - calculatePureWaterDensity( tableCoords, functionName, densities ); + real64 const waterCompressibility = brineFluidParameters.m_waterCompressibility; + calculatePureWaterDensity( tableCoords, functionName, densities, waterCompressibility ); } TableFunction * const densityTable = dynamicCast< TableFunction * >( functionManager.createChild( "TableFunction", tableName ) );