Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
da108dd
Add enthalpy model shell
dkachuma Jun 12, 2025
d10e653
Add unit test
dkachuma Jun 12, 2025
cc3af80
Add heat capacity parameters
dkachuma Jun 12, 2025
d2f1a7b
Add scaling by R
dkachuma Jun 13, 2025
b68b7f1
Copy file step 1
dkachuma Jun 13, 2025
4166a57
Copy file step 2
dkachuma Jun 13, 2025
6daeda1
Copy file step 3
dkachuma Jun 13, 2025
7067602
Copy file step 4
dkachuma Jun 13, 2025
620f68f
Copy file step 1
dkachuma Jun 13, 2025
ef817f2
Copy file step 2
dkachuma Jun 13, 2025
539e3a4
Copy file step 3
dkachuma Jun 13, 2025
c27e9e0
Copy file step 4
dkachuma Jun 13, 2025
be1e600
Split EOS calculations
dkachuma Jun 14, 2025
7a53950
Remove code
dkachuma Jun 14, 2025
dadfa5e
Cubic EOS unit test
dkachuma Jun 17, 2025
6a79e96
Stack variables
dkachuma Jun 21, 2025
c200a78
Mixture coefficient temperature derivatives
dkachuma Jun 21, 2025
15654fc
Unit tests for SW
dkachuma Jun 22, 2025
2def584
Fix unit tests
dkachuma Jun 22, 2025
391f946
Fix unit tests
dkachuma Jun 23, 2025
96f10ad
Fix GPU build
dkachuma Jun 23, 2025
042dd9f
Merge branch 'dkachuma/sanitise-cubic-eos' into dkachuma/compositiona…
dkachuma Jun 24, 2025
5c6a07e
Fix gcc-10 build
dkachuma Jun 24, 2025
9aa7e78
Fix build
dkachuma Jun 24, 2025
c7f6824
More on unit tests
dkachuma Jun 24, 2025
d2a309e
Split variables into separate file
dkachuma Jun 24, 2025
9036357
Move stack variables to separate file
dkachuma Jun 25, 2025
2265512
Merge branch 'dkachuma/sanitise-cubic-eos' into dkachuma/compositiona…
dkachuma Jun 25, 2025
88453a8
Add second order derivatives for mixture parameter
dkachuma Jun 26, 2025
eab7e6e
Add CubicEOS enthalpy
dkachuma Jun 26, 2025
2d0e542
Merge branch 'develop' into dkachuma/compositional-enthalpy
dkachuma May 4, 2026
17c935a
Restore Cubic EOS file
dkachuma May 4, 2026
6832a9d
Some changes
dkachuma May 7, 2026
547c08d
3 Step copy
dkachuma May 14, 2026
ff128b3
3 Step copy
dkachuma May 14, 2026
7808e7a
3 Step copy
dkachuma May 14, 2026
4e7ff66
KernelSpecs for FluidUpdateKernel
dkachuma May 14, 2026
60ddff7
Split applyFaceDirichletBC function into separate file
dkachuma May 14, 2026
473e2cc
3 step copy
dkachuma May 14, 2026
92d7c76
3 step copy
dkachuma May 14, 2026
1951a1f
3 step copy
dkachuma May 14, 2026
3973185
3 step copy
dkachuma May 14, 2026
a58d942
Split kernels
dkachuma May 15, 2026
ed71954
Instantiations
dkachuma May 15, 2026
e57ff98
HydrostaticPressureKernel
dkachuma May 15, 2026
9dd8503
Merge branch 'develop' into dkachuma/fluid-kernel-specs
dkachuma May 15, 2026
0302c79
Remove dedicated applyFaceDirichletBC file
dkachuma May 15, 2026
447615d
Fix typo
dkachuma May 15, 2026
bffe6e7
Merge branch 'develop' into dkachuma/fluid-kernel-specs
dkachuma May 16, 2026
2a294bf
Merge branch 'develop' into dkachuma/fluid-kernel-specs
dkachuma May 22, 2026
18342d6
Merge branch 'develop' into dkachuma/fluid-kernel-specs
dkachuma May 28, 2026
59b83cf
Remove PVT package
dkachuma May 28, 2026
9b2d21f
Merge branch 'develop' into dkachuma/compositional-enthalpy
dkachuma May 29, 2026
612cb01
Merge branch 'dkachuma/compositional-enthalpy' of https://github.com/…
dkachuma May 29, 2026
cf937e3
Update fluid model
dkachuma May 29, 2026
823ab51
Test input parameters
dkachuma Jun 1, 2026
eb8ea53
Implement EOS enthalpy
dkachuma Jun 3, 2026
9556f5c
Merge branch 'develop' into dkachuma/compositional-enthalpy
dkachuma Jun 3, 2026
c520ba8
Implement mass variable enthalpy
dkachuma Jun 3, 2026
4018605
Remove mass conversion from lambda
dkachuma Jun 3, 2026
dd9b340
Copilot comments
dkachuma Jun 3, 2026
2b262bf
Add mass unit tests
dkachuma Jun 3, 2026
7847154
Merge branch 'develop' into dkachuma/fluid-kernel-specs
OmarDuran Jun 3, 2026
40cc8cf
Rebaseline
dkachuma Jun 3, 2026
3661261
Add missing include guard
dkachuma Jun 3, 2026
c9973ee
Merge branch 'develop' into dkachuma/fluid-kernel-specs
dkachuma Jun 8, 2026
1e2705c
Merge branch 'develop' into dkachuma/compositional-enthalpy
dkachuma Jun 8, 2026
34042c7
Merge branch 'develop' into dkachuma/compositional-enthalpy
dkachuma Jun 9, 2026
b61183a
Merge branch 'develop' into dkachuma/fluid-kernel-specs
OmarDuran Jun 9, 2026
7e610f8
Merge remote-tracking branch 'origin/dkachuma/fluid-kernel-specs' int…
dkachuma Jun 9, 2026
056061b
Add model definitions
dkachuma Jun 9, 2026
69e4506
Add multifluid test
dkachuma Jun 9, 2026
27f6797
Fix unit test
dkachuma Jun 9, 2026
1216c75
Merge branch 'develop' into dkachuma/thermal-fluid-models
dkachuma Jun 16, 2026
44e2071
Merge develop
dkachuma Jun 16, 2026
eb7a052
Merge branch 'develop' into dkachuma/thermal-fluid-models
dkachuma Jun 22, 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 @@ -48,7 +48,10 @@ void constitutiveUpdatePassThru( constitutive::MultiFluidBase const & fluid,
CompositionalTwoPhasePhillipsBrine,
CompositionalKValuePhillipsBrine,
CompositionalKValueLohrenzBrayClarkViscosity,
CompositionalTwoPhaseConstantViscosity
CompositionalTwoPhaseConstantViscosity,
CompositionalThermalTwoPhaseLohrenzBrayClarkViscosity,
CompositionalThermalTwoPhasePhillipsBrine,
CompositionalThermalKValuePhillipsBrine
>::execute( fluid, std::forward< LAMBDA >( lambda ) );
}

Expand All @@ -68,7 +71,10 @@ void constitutiveUpdatePassThru( constitutive::MultiFluidBase & fluid,
CompositionalTwoPhasePhillipsBrine,
CompositionalKValuePhillipsBrine,
CompositionalKValueLohrenzBrayClarkViscosity,
CompositionalTwoPhaseConstantViscosity
CompositionalTwoPhaseConstantViscosity,
CompositionalThermalTwoPhaseLohrenzBrayClarkViscosity,
CompositionalThermalTwoPhasePhillipsBrine,
CompositionalThermalKValuePhillipsBrine
>::execute( fluid, std::forward< LAMBDA >( lambda ) );
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ string CompositionalMultiphaseFluid< FLASH, PHASES... >::catalogName()
// Use the first phase viscosity
using FirstPhase = typename camp::at< camp::list< PHASES... >, camp::num< 0 > >::type;
using ViscosityType = typename FirstPhase::Viscosity;
return GEOS_FMT( "Compositional{}Fluid{}", FLASH::catalogName(), ViscosityType::catalogName() );
return GEOS_FMT( "Compositional{}{}Fluid{}", FLASH::catalogName(),
isThermalType() ? "Thermal": "",
ViscosityType::catalogName() );
}

template< typename FLASH, typename ... PHASES >
Expand Down Expand Up @@ -328,6 +330,18 @@ template class CompositionalMultiphaseFluid<
compositional::KValueFlashModel< 2 >,
compositional::PhaseModel< compositional::PhillipsBrineDensity, compositional::PhillipsBrineViscosity >,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity > >;
template class CompositionalMultiphaseFluid<
compositional::NegativeTwoPhaseFlashModel,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity, compositional::CompositionalEnthalpy >,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity, compositional::CompositionalEnthalpy > >;
template class CompositionalMultiphaseFluid<
compositional::NegativeTwoPhaseFlashModel,
compositional::PhaseModel< compositional::PhillipsBrineDensity, compositional::PhillipsBrineViscosity, compositional::CompositionalEnthalpy >,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity, compositional::CompositionalEnthalpy > >;
template class CompositionalMultiphaseFluid<
compositional::KValueFlashModel< 2 >,
compositional::PhaseModel< compositional::PhillipsBrineDensity, compositional::PhillipsBrineViscosity, compositional::CompositionalEnthalpy >,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity, compositional::CompositionalEnthalpy > >;

REGISTER_CATALOG_ENTRY( ConstitutiveBase,
CompositionalTwoPhaseConstantViscosity,
Expand Down Expand Up @@ -359,6 +373,21 @@ REGISTER_CATALOG_ENTRY( ConstitutiveBase,
string const &,
dataRepository::Group * const )

REGISTER_CATALOG_ENTRY( ConstitutiveBase,
CompositionalThermalTwoPhaseLohrenzBrayClarkViscosity,
string const &,
dataRepository::Group * const )

REGISTER_CATALOG_ENTRY( ConstitutiveBase,
CompositionalThermalTwoPhasePhillipsBrine,
string const &,
dataRepository::Group * const )

REGISTER_CATALOG_ENTRY( ConstitutiveBase,
CompositionalThermalKValuePhillipsBrine,
string const &,
dataRepository::Group * const )

} // namespace constitutive

} // namespace geos
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "constitutive/fluid/multifluid/compositional/CompositionalMultiphaseFluidUpdates.hpp"
#include "constitutive/fluid/multifluid/compositional/models/ConstantViscosity.hpp"
#include "constitutive/fluid/multifluid/compositional/models/CompositionalDensity.hpp"
#include "constitutive/fluid/multifluid/compositional/models/CompositionalEnthalpy.hpp"
#include "constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterDensity.hpp"
#include "constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterFlashModel.hpp"
#include "constitutive/fluid/multifluid/compositional/models/ImmiscibleWaterViscosity.hpp"
Expand Down Expand Up @@ -186,6 +187,18 @@ using CompositionalKValuePhillipsBrine = CompositionalMultiphaseFluid<
compositional::KValueFlashModel< 2 >,
compositional::PhaseModel< compositional::PhillipsBrineDensity, compositional::PhillipsBrineViscosity >,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity > >;
using CompositionalThermalTwoPhaseLohrenzBrayClarkViscosity = CompositionalMultiphaseFluid<
compositional::NegativeTwoPhaseFlashModel,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity, compositional::CompositionalEnthalpy >,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity, compositional::CompositionalEnthalpy > >;
using CompositionalThermalTwoPhasePhillipsBrine = CompositionalMultiphaseFluid<
compositional::NegativeTwoPhaseFlashModel,
compositional::PhaseModel< compositional::PhillipsBrineDensity, compositional::PhillipsBrineViscosity, compositional::CompositionalEnthalpy >,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity, compositional::CompositionalEnthalpy > >;
using CompositionalThermalKValuePhillipsBrine = CompositionalMultiphaseFluid<
compositional::KValueFlashModel< 2 >,
compositional::PhaseModel< compositional::PhillipsBrineDensity, compositional::PhillipsBrineViscosity, compositional::CompositionalEnthalpy >,
compositional::PhaseModel< compositional::CompositionalDensity, compositional::LohrenzBrayClarkViscosity, compositional::CompositionalEnthalpy > >;

} /* namespace constitutive */

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ CompositionalEnthalpy::CompositionalEnthalpy( string const & name,

integer const numPhases = m_heatCapacityCoefficients->m_phaseTypes.size();

m_phaseType = m_heatCapacityCoefficients->m_phaseTypes[phaseIndex];
m_phaseType = static_cast< PhaseType >(m_heatCapacityCoefficients->m_phaseTypes[phaseIndex]);
for( integer ip = 0; ip < numPhases; ip++ )
{
if( m_heatCapacityCoefficients->m_phaseTypes[ip] == PhaseType::VAPOUR )
if( isPhaseType( m_heatCapacityCoefficients->m_phaseTypes[ip], PhaseType::VAPOUR ) )
{
m_vapourIndex = ip;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ void HeatCapacityCoefficients::registerParametersImpl( MultiFluidBase * fluid )
fluid->registerWrapper( viewKeyStruct::componentHeatCapacityCoefficientsString(), &m_coefficients ).
setInputFlag( dataRepository::InputFlags::REQUIRED ).
setDescription( "The polynomial coefficients for the specific heat capacity of each component." );

// Register extra wrappers to enable auto-cloning
fluid->registerWrapper( "heatCapacityPhaseTypes", &m_phaseTypes )
.setSizedFromParent( 0 )
.setRestartFlags( dataRepository::RestartFlags::NO_WRITE );
}

void HeatCapacityCoefficients::postInputInitializationImpl( MultiFluidBase const * fluid,
Expand Down Expand Up @@ -105,7 +110,7 @@ void HeatCapacityCoefficients::postInputInitializationImpl( MultiFluidBase const
for( integer ip = 0; ip < numPhases; ip++ )
{
PhaseType const phaseType = getPhaseTypeFromName( phaseNames[ip] );
m_phaseTypes[ip] = phaseType;
m_phaseTypes[ip] = static_cast< integer >(phaseType);
switch( phaseType )
{
case PhaseType::LIQUID:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class HeatCapacityCoefficients : public ModelParameters
real64 m_referenceTemperature{298.15};
array2d< real64 > m_referenceEnthalpy;
array2d< real64 > m_coefficients;
array1d< PhaseType > m_phaseTypes;
array1d< integer > m_phaseTypes;

protected:
void registerParametersImpl( MultiFluidBase * fluid ) override;
Expand Down
1 change: 1 addition & 0 deletions src/coreComponents/constitutive/unitTests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ set( gtest_geosx_tests
testModifiedCamClay.cpp
testMultiFluidBlackOil.cpp
testMultiFluidCO2Brine.cpp
testMultiFluidCompositionalThermalMultiphase.cpp
testMultiFluidThreePhaseCompositionalMultiphase.cpp
testMultiFluidTwoPhaseCompositionalMultiphase.cpp
testMultiFluidDeadOil.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,11 @@ struct FluidData< 4 >
}
}
coefficients->m_phaseTypes.resize( numPhases );
coefficients->m_phaseTypes[static_cast< integer >(PhaseType::LIQUID)] = PhaseType::LIQUID;
coefficients->m_phaseTypes[static_cast< integer >(PhaseType::VAPOUR)] = PhaseType::VAPOUR;
for( PhaseType const phaseType : {PhaseType::LIQUID, PhaseType::VAPOUR} )
{
integer const phase = static_cast< integer >(phaseType);
coefficients->m_phaseTypes[phase] = phase;
}
}
};

Expand Down
Loading
Loading