diff --git a/src/coreComponents/constitutive/CMakeLists.txt b/src/coreComponents/constitutive/CMakeLists.txt index 90f58b17390..108b5fd0bb0 100644 --- a/src/coreComponents/constitutive/CMakeLists.txt +++ b/src/coreComponents/constitutive/CMakeLists.txt @@ -45,8 +45,6 @@ set( constitutive_headers fluid/PVTFunctions/SpanWagnerCO2Density.hpp fluid/PVTFunctions/BrineEnthalpy.hpp fluid/PVTFunctions/CO2Enthalpy.hpp - fluid/PVTFunctions/BrineInternalEnergy.hpp - fluid/PVTFunctions/CO2InternalEnergy.hpp fluid/PVTFunctions/CO2EOSSolver.hpp fluid/PVTFunctions/PureWaterProperties.hpp fluid/ParticleFluid.hpp @@ -150,8 +148,6 @@ set( constitutive_sources fluid/PVTFunctions/PVTFunctionHelpers.cpp fluid/PVTFunctions/BrineEnthalpy.cpp fluid/PVTFunctions/CO2Enthalpy.cpp - fluid/PVTFunctions/BrineInternalEnergy.cpp - fluid/PVTFunctions/CO2InternalEnergy.cpp fluid/PVTFunctions/CO2EOSSolver.cpp fluid/PVTFunctions/PureWaterProperties.cpp fluid/ParticleFluid.cpp diff --git a/src/coreComponents/constitutive/fluid/CO2BrineFluid.cpp b/src/coreComponents/constitutive/fluid/CO2BrineFluid.cpp index 262a1d7a9b3..1567cf15be2 100644 --- a/src/coreComponents/constitutive/fluid/CO2BrineFluid.cpp +++ b/src/coreComponents/constitutive/fluid/CO2BrineFluid.cpp @@ -36,16 +36,16 @@ template< typename PHASE1, typename PHASE2, typename FLASH > class TwoPhaseCatalogNames {}; template<> class - TwoPhaseCatalogNames< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, + TwoPhaseCatalogNames< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::NoOpPVTFunction >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction >, PVTProps::CO2Solubility > { public: static string name() { return "CO2BrinePhillipsFluid"; } }; template<> class - TwoPhaseCatalogNames< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::BrineEnthalpy, PVTProps::BrineInternalEnergy >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy, PVTProps::CO2InternalEnergy >, + TwoPhaseCatalogNames< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::BrineEnthalpy >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy >, PVTProps::CO2Solubility > { public: @@ -53,16 +53,16 @@ template<> class }; template<> class - TwoPhaseCatalogNames< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, + TwoPhaseCatalogNames< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::NoOpPVTFunction >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction >, PVTProps::CO2Solubility > { public: static string name() { return "CO2BrineEzrokhiFluid"; } }; template<> class - TwoPhaseCatalogNames< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::BrineEnthalpy, PVTProps::BrineInternalEnergy >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy, PVTProps::CO2InternalEnergy >, + TwoPhaseCatalogNames< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::BrineEnthalpy >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy >, PVTProps::CO2Solubility > { public: @@ -109,10 +109,8 @@ CO2BrineFluid( string const & name, Group * const parent ): template< typename PHASE1, typename PHASE2, typename FLASH > bool CO2BrineFluid< PHASE1, PHASE2, FLASH >::isThermal() const { - return ( PHASE1::Enthalpy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() && - PHASE1::InternalEnergy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() && - PHASE2::Enthalpy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() && - PHASE2::InternalEnergy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() ); + return ( PHASE1::Enthalpy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() && + PHASE2::Enthalpy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() ); } @@ -174,11 +172,11 @@ void CO2BrineFluid< PHASE1, PHASE2, FLASH >::createPVTModels() // TODO: get rid of these external files and move into XML, this is too error prone // For now, to support the legacy input, we read all the input parameters at once in the arrays below, and then we create the models array1d< array1d< string > > phase1InputParams; - phase1InputParams.resize( 4 ); + phase1InputParams.resize( 3 ); array1d< array1d< string > > phase2InputParams; - phase2InputParams.resize( 4 ); + phase2InputParams.resize( 3 ); - // 1) Create the viscosity, density, enthalpy, and internal energy models + // 1) Create the viscosity, density, enthalpy models for( string const & filename : m_phasePVTParaFiles ) { std::ifstream is( filename ); @@ -220,17 +218,6 @@ void CO2BrineFluid< PHASE1, PHASE2, FLASH >::createPVTModels() phase2InputParams[PHASE2::InputParamOrder::ENTHALPY] = strs; } } - else if( strs[0] == toString( SubModelInputNames::INTERNALENERGY ) ) - { - if( strs[1] == PHASE1::InternalEnergy::catalogName() ) - { - phase1InputParams[PHASE1::InputParamOrder::INTERNALENERGY] = strs; - } - else if( strs[1] == PHASE2::InternalEnergy::catalogName() ) - { - phase2InputParams[PHASE2::InputParamOrder::INTERNALENERGY] = strs; - } - } else { GEOSX_THROW( GEOSX_FMT( "{}: invalid PVT function type '{}'", getFullName(), strs[0] ), InputError ); @@ -253,15 +240,7 @@ void CO2BrineFluid< PHASE1, PHASE2, FLASH >::createPVTModels() GEOSX_FMT( "{}: PVT model {} not found in input files", getFullName(), PHASE2::Viscosity::catalogName() ), InputError ); - // we also detect any inconsistency arising in the enthalpy/internal energy models - GEOSX_THROW_IF( phase1InputParams[PHASE1::InputParamOrder::INTERNALENERGY].empty() && - ( PHASE1::InternalEnergy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() ), - GEOSX_FMT( "{}: PVT model {} not found in input files", getFullName(), PHASE1::InternalEnergy::catalogName() ), - InputError ); - GEOSX_THROW_IF( phase2InputParams[PHASE2::InputParamOrder::INTERNALENERGY].empty() && - ( PHASE2::InternalEnergy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() ), - GEOSX_FMT( "{}: PVT model {} not found in input files", getFullName(), PHASE2::InternalEnergy::catalogName() ), - InputError ); + // we also detect any inconsistency arising in the enthalpy models GEOSX_THROW_IF( phase1InputParams[PHASE1::InputParamOrder::ENTHALPY].empty() && ( PHASE1::Enthalpy::catalogName() != PVTProps::NoOpPVTFunction::catalogName() ), GEOSX_FMT( "{}: PVT model {} not found in input files", getFullName(), PHASE1::Enthalpy::catalogName() ), @@ -317,6 +296,7 @@ CO2BrineFluid< PHASE1, PHASE2, FLASH >::createKernelWrapper() *m_flash, m_componentMolarWeight.toViewConst(), m_useMass, + isThermal(), m_phaseFraction.toView(), m_phaseDensity.toView(), m_phaseMassDensity.toView(), @@ -336,6 +316,7 @@ CO2BrineFluid< PHASE1, PHASE2, FLASH >::KernelWrapper:: FLASH const & flash, arrayView1d< geosx::real64 const > componentMolarWeight, bool const useMass, + bool const isThermal, PhaseProp::ViewType phaseFraction, PhaseProp::ViewType phaseDensity, PhaseProp::ViewType phaseMassDensity, @@ -356,24 +337,25 @@ CO2BrineFluid< PHASE1, PHASE2, FLASH >::KernelWrapper:: std::move( totalDensity ) ), m_p1Index( p1Index ), m_p2Index( p2Index ), + m_isThermal( isThermal ), m_phase1( phase1.createKernelWrapper() ), m_phase2( phase2.createKernelWrapper() ), m_flash( flash.createKernelWrapper() ) {} // explicit instantiation of the model template; unfortunately we can't use the aliases for this -template class CO2BrineFluid< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, +template class CO2BrineFluid< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::NoOpPVTFunction >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction >, PVTProps::CO2Solubility >; -template class CO2BrineFluid< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::BrineEnthalpy, PVTProps::BrineInternalEnergy >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy, PVTProps::CO2InternalEnergy >, +template class CO2BrineFluid< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::BrineEnthalpy >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy >, PVTProps::CO2Solubility >; -template class CO2BrineFluid< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, +template class CO2BrineFluid< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::NoOpPVTFunction >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction >, PVTProps::CO2Solubility >; -template class CO2BrineFluid< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::BrineEnthalpy, PVTProps::BrineInternalEnergy >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy, PVTProps::CO2InternalEnergy >, +template class CO2BrineFluid< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::BrineEnthalpy >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy >, PVTProps::CO2Solubility >; REGISTER_CATALOG_ENTRY( ConstitutiveBase, CO2BrinePhillipsFluid, string const &, Group * const ) diff --git a/src/coreComponents/constitutive/fluid/CO2BrineFluid.hpp b/src/coreComponents/constitutive/fluid/CO2BrineFluid.hpp index 268642a1a6a..875b3f2085b 100644 --- a/src/coreComponents/constitutive/fluid/CO2BrineFluid.hpp +++ b/src/coreComponents/constitutive/fluid/CO2BrineFluid.hpp @@ -24,9 +24,7 @@ #include "constitutive/fluid/MultiFluidUtils.hpp" #include "constitutive/fluid/PhaseModel.hpp" #include "constitutive/fluid/PVTFunctions/BrineEnthalpy.hpp" -#include "constitutive/fluid/PVTFunctions/BrineInternalEnergy.hpp" #include "constitutive/fluid/PVTFunctions/CO2Enthalpy.hpp" -#include "constitutive/fluid/PVTFunctions/CO2InternalEnergy.hpp" #include "constitutive/fluid/PVTFunctions/CO2Solubility.hpp" #include "constitutive/fluid/PVTFunctions/EzrokhiBrineDensity.hpp" #include "constitutive/fluid/PVTFunctions/EzrokhiBrineViscosity.hpp" @@ -116,6 +114,7 @@ class CO2BrineFluid : public MultiFluidBase FLASH const & flash, arrayView1d< real64 const > componentMolarWeight, bool const useMass, + bool const isThermal, PhaseProp::ViewType phaseFraction, PhaseProp::ViewType phaseDensity, PhaseProp::ViewType phaseMassDensity, @@ -131,6 +130,8 @@ class CO2BrineFluid : public MultiFluidBase /// Index of the gas phase integer m_p2Index; + /// Flag to specify whether the model is thermal or not + bool m_isThermal; /// Brine constitutive kernel wrappers typename PHASE1::KernelWrapper m_phase1; @@ -151,8 +152,7 @@ class CO2BrineFluid : public MultiFluidBase { DENSITY, ///< the keyword for the density model VISCOSITY, ///< the keyword for the viscosity model - ENTHALPY, ///< the keyword for the enthalpy model - INTERNALENERGY, ///< the keyword for the internal energy model + ENTHALPY ///< the keyword for the enthalpy model }; /** @@ -201,21 +201,21 @@ class CO2BrineFluid : public MultiFluidBase // these aliases are useful in constitutive dispatch using CO2BrinePhillipsFluid = - CO2BrineFluid< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, + CO2BrineFluid< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::NoOpPVTFunction >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction >, PVTProps::CO2Solubility >; using CO2BrinePhillipsThermalFluid = - CO2BrineFluid< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::BrineEnthalpy, PVTProps::BrineInternalEnergy >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy, PVTProps::CO2InternalEnergy >, + CO2BrineFluid< PhaseModel< PVTProps::PhillipsBrineDensity, PVTProps::PhillipsBrineViscosity, PVTProps::BrineEnthalpy >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy >, PVTProps::CO2Solubility >; using CO2BrineEzrokhiFluid = - CO2BrineFluid< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction, PVTProps::NoOpPVTFunction >, + CO2BrineFluid< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::NoOpPVTFunction >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::NoOpPVTFunction >, PVTProps::CO2Solubility >; using CO2BrineEzrokhiThermalFluid = - CO2BrineFluid< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::BrineEnthalpy, PVTProps::BrineInternalEnergy >, - PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy, PVTProps::CO2InternalEnergy >, + CO2BrineFluid< PhaseModel< PVTProps::EzrokhiBrineDensity, PVTProps::EzrokhiBrineViscosity, PVTProps::BrineEnthalpy >, + PhaseModel< PVTProps::SpanWagnerCO2Density, PVTProps::FenghourCO2Viscosity, PVTProps::CO2Enthalpy >, PVTProps::CO2Solubility >; template< typename PHASE1, typename PHASE2, typename FLASH > @@ -289,31 +289,7 @@ CO2BrineFluid< PHASE1, PHASE2, FLASH >::KernelWrapper:: phaseViscosity[ip2], m_useMass ); - // 4. Compute enthalpy and internal energy - - m_phase1.enthalpy.compute( pressure, - temperatureInCelsius, - phaseCompFraction[ip1].toSliceConst(), - phaseEnthalpy[ip1], - m_useMass ); - m_phase1.internalEnergy.compute( pressure, - temperatureInCelsius, - phaseCompFraction[ip1].toSliceConst(), - phaseInternalEnergy[ip1], - m_useMass ); - - m_phase2.enthalpy.compute( pressure, - temperatureInCelsius, - phaseCompFraction[ip2].toSliceConst(), - phaseEnthalpy[ip2], - m_useMass ); - m_phase2.internalEnergy.compute( pressure, - temperatureInCelsius, - phaseCompFraction[ip2].toSliceConst(), - phaseInternalEnergy[ip2], - m_useMass ); - - // 5. Depending on the m_useMass flag, convert to mass variables or simply compute mass density + // 4. Depending on the m_useMass flag, convert to mass variables or simply compute mass density // TODO: for now the treatment of molar/mass density requires too many interpolations in the tables, it needs to be fixed // we should modify the PVT functions so that they can return phaseMassDens, phaseDens, and phaseMW in one call @@ -363,6 +339,30 @@ CO2BrineFluid< PHASE1, PHASE2, FLASH >::KernelWrapper:: true ); } + // 5. Compute enthalpy and internal energy + + if( m_isThermal ) + { + + m_phase1.enthalpy.compute( pressure, + temperatureInCelsius, + phaseCompFraction[ip1].toSliceConst(), + phaseEnthalpy[ip1], + m_useMass ); + m_phase2.enthalpy.compute( pressure, + temperatureInCelsius, + phaseCompFraction[ip2].toSliceConst(), + phaseEnthalpy[ip2], + m_useMass ); + + computeInternalEnergy< numComp, numPhase >( pressure, + phaseFraction, + phaseMassDensity, + phaseEnthalpy, + phaseInternalEnergy ); + + } + // 6. Compute total fluid mass/molar density computeTotalDensity< numComp, numPhase >( phaseFraction, @@ -442,32 +442,7 @@ CO2BrineFluid< PHASE1, PHASE2, FLASH >::KernelWrapper:: phaseViscosity.value[ip2], phaseViscosity.derivs[ip2], m_useMass ); - - // 4. Compute enthalpy and internal energy - - m_phase1.enthalpy.compute( pressure, - temperatureInCelsius, - phaseCompFraction.value[ip1].toSliceConst(), phaseCompFraction.derivs[ip1].toSliceConst(), - phaseEnthalpy.value[ip1], phaseEnthalpy.derivs[ip1], - m_useMass ); - m_phase1.internalEnergy.compute( pressure, - temperatureInCelsius, - phaseCompFraction.value[ip1].toSliceConst(), phaseCompFraction.derivs[ip1].toSliceConst(), - phaseInternalEnergy.value[ip1], phaseInternalEnergy.derivs[ip1], - m_useMass ); - - m_phase2.enthalpy.compute( pressure, - temperatureInCelsius, - phaseCompFraction.value[ip2].toSliceConst(), phaseCompFraction.derivs[ip2].toSliceConst(), - phaseEnthalpy.value[ip2], phaseEnthalpy.derivs[ip2], - m_useMass ); - m_phase2.internalEnergy.compute( pressure, - temperatureInCelsius, - phaseCompFraction.value[ip2].toSliceConst(), phaseCompFraction.derivs[ip2].toSliceConst(), - phaseInternalEnergy.value[ip2], phaseInternalEnergy.derivs[ip2], - m_useMass ); - - // 5. Depending on the m_useMass flag, convert to mass variables or simply compute mass density + // 4. Depending on the m_useMass flag, convert to mass variables or simply compute mass density // TODO: for now the treatment of molar/mass density requires too many interpolations in the tables, it needs to be fixed // we should modify the PVT functions so that they can return phaseMassDens, phaseDens, and phaseMW in one call @@ -542,7 +517,30 @@ CO2BrineFluid< PHASE1, PHASE2, FLASH >::KernelWrapper:: true ); } - // 5. Compute total fluid mass/molar density and derivatives + // 5. Compute enthalpy and internal energy + + if( m_isThermal ) + { + + m_phase1.enthalpy.compute( pressure, + temperatureInCelsius, + phaseCompFraction.value[ip1].toSliceConst(), phaseCompFraction.derivs[ip1].toSliceConst(), + phaseEnthalpy.value[ip1], phaseEnthalpy.derivs[ip1], + m_useMass ); + m_phase2.enthalpy.compute( pressure, + temperatureInCelsius, + phaseCompFraction.value[ip2].toSliceConst(), phaseCompFraction.derivs[ip2].toSliceConst(), + phaseEnthalpy.value[ip2], phaseEnthalpy.derivs[ip2], + m_useMass ); + + computeInternalEnergy( pressure, + phaseFraction, + phaseMassDensity, + phaseEnthalpy, + phaseInternalEnergy ); + } + + // 6. Compute total fluid mass/molar density and derivatives computeTotalDensity( phaseFraction, phaseDensity, @@ -576,23 +574,19 @@ CO2BrineFluid< PHASE1, PHASE2, FLASH >::KernelWrapper:: ENUM_STRINGS( CO2BrinePhillipsFluid::SubModelInputNames, "DensityFun", "ViscosityFun", - "EnthalpyFun", - "InternalEnergyFun" ); + "EnthalpyFun" ); ENUM_STRINGS( CO2BrinePhillipsThermalFluid::SubModelInputNames, "DensityFun", "ViscosityFun", - "EnthalpyFun", - "InternalEnergyFun" ); + "EnthalpyFun" ); ENUM_STRINGS( CO2BrineEzrokhiFluid::SubModelInputNames, "DensityFun", "ViscosityFun", - "EnthalpyFun", - "InternalEnergyFun" ); + "EnthalpyFun" ); ENUM_STRINGS( CO2BrineEzrokhiThermalFluid::SubModelInputNames, "DensityFun", "ViscosityFun", - "EnthalpyFun", - "InternalEnergyFun" ); + "EnthalpyFun" ); } // namespace constitutive diff --git a/src/coreComponents/constitutive/fluid/MultiFluidBase.hpp b/src/coreComponents/constitutive/fluid/MultiFluidBase.hpp index 73ca3d8b3d8..279e57641f3 100644 --- a/src/coreComponents/constitutive/fluid/MultiFluidBase.hpp +++ b/src/coreComponents/constitutive/fluid/MultiFluidBase.hpp @@ -353,6 +353,39 @@ class MultiFluidBase : public ConstitutiveBase arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseEnthalpy, arraySlice2d< real64, multifluid::USD_PHASE_DC - 2 > const dPhaseInternalEnergy ) const; + /** + * @brief Utility function to compute the internal energy from pressure, enthalpy, and density + * @tparam maxNumComp the max number of components + * @tparam maxNumPhase the max number of phases + * @param[in] pressure the pressure in the cell + * @param[in] phaseFrac the phase fractions + * @param[in] phaseMassDens the phase mass densities + * @param[out] phaseEnthalpy the phase enthalpies + * @param[out] phaseInternalEnergy the phase internal energy + */ + template< integer maxNumComp, integer maxNumPhase > + GEOSX_HOST_DEVICE + void computeInternalEnergy( real64 const & pressure, + arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseFrac, + arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseMassDens, + arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseEnthalpy, + arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseInternalEnergy ) const; + + /** + * @brief Utility function to compute the internal energy from pressure, enthalpy, and density and keep derivatives + * @param[in] pressure the pressure in the cellx + * @param[in] phaseFrac the phase fractions (+ derivatives) + * @param[in] phaseMassDens the phase mass densities (+ derivatives) + * @param[out] phaseEnthalpy the phase enthalpies (+ derivatives) + * @param[out] phaseInternalEnergy the phase internal energy (+ derivatives) + */ + GEOSX_HOST_DEVICE + void computeInternalEnergy( real64 const & pressure, + PhaseProp::SliceType const phaseFrac, + PhaseProp::SliceType const phaseMassDens, + PhaseProp::SliceType const phaseEnthalpy, + PhaseProp::SliceType const phaseInternalEnergy ) const; + /** * @brief Utility function to convert mole fractions to mass fractions * @tparam maxNumComp the max number of components @@ -370,7 +403,7 @@ class MultiFluidBase : public ConstitutiveBase /** * @brief Utility function to convert mole fractions to mass fractions and keep derivatives * @param[in] phaseFrac the phase fractions properly converted (+ derivatives) - * @param[in] phaseFrac the phase densities in mass or moles (+ derivatives) + * @param[in] phaseDens the phase densities in mass or moles (+ derivatives) * @param[out] totalDens the total density (+ derivatives) */ GEOSX_HOST_DEVICE @@ -821,6 +854,76 @@ MultiFluidBase::KernelWrapper:: } } +template< integer maxNumComp, integer maxNumPhase > +GEOSX_HOST_DEVICE +inline void +MultiFluidBase::KernelWrapper:: + computeInternalEnergy( real64 const & pressure, + arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseFrac, + arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseMassDens, + arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseEnthalpy, + arraySlice1d< real64, multifluid::USD_PHASE - 2 > const phaseInternalEnergy ) const +{ + using namespace multifluid; + + integer constexpr maxNumDof = maxNumComp + 2; + integer const numPhase = numPhases(); + integer const numComp = numComponents(); + + StackArray< real64, 4, maxNumDof *maxNumPhase, LAYOUT_PHASE_DC > dPhaseFrac( 1, 1, numPhase, numComp+2 ); + MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > + phaseFracAndDeriv { phaseFrac, dPhaseFrac[0][0] }; + + StackArray< real64, 4, maxNumDof *maxNumPhase, LAYOUT_PHASE_DC > dPhaseMassDens( 1, 1, numPhase, numComp+2 ); + MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > + phaseMassDensAndDeriv { phaseMassDens, dPhaseMassDens[0][0] }; + + StackArray< real64, 4, maxNumDof *maxNumPhase, LAYOUT_PHASE_DC > dPhaseEnthalpy( 1, 1, numPhase, numComp+2 ); + MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > + phaseEnthalpyAndDeriv { phaseEnthalpy, dPhaseEnthalpy[0][0] }; + + StackArray< real64, 4, maxNumDof *maxNumPhase, LAYOUT_PHASE_DC > dPhaseInternalEnergy( 1, 1, numPhase, numComp+2 ); + MultiFluidVarSlice< real64, 1, USD_PHASE - 2, USD_PHASE_DC - 2 > + phaseInternalEnergyAndDeriv { phaseInternalEnergy, dPhaseInternalEnergy[0][0] }; + + computeInternalEnergy( pressure, + phaseFracAndDeriv, + phaseMassDensAndDeriv, + phaseEnthalpyAndDeriv, + phaseInternalEnergyAndDeriv ); +} + +GEOSX_HOST_DEVICE +inline void +MultiFluidBase::KernelWrapper:: + computeInternalEnergy( real64 const & pressure, + PhaseProp::SliceType const phaseFrac, + PhaseProp::SliceType const phaseMassDens, + PhaseProp::SliceType const phaseEnthalpy, + PhaseProp::SliceType const phaseInternalEnergy ) const +{ + integer const numPhase = numPhases(); + integer const numComp = numComponents(); + for( integer ip = 0; ip < numPhase; ++ip ) + { + + bool const phaseExists = (phaseFrac.value[ip] > 0); + if( !phaseExists ) + { + continue; + } + + real64 const densInv = 1.0 / phaseMassDens.value[ip]; + real64 const densInvSquared = densInv * densInv; + phaseInternalEnergy.value[ip] = phaseEnthalpy.value[ip] - pressure * densInv; + for( integer idof = 0; idof < numComp; ++idof ) + { + phaseInternalEnergy.derivs[ip][idof] = phaseEnthalpy.derivs[ip][idof] + pressure * phaseMassDens.derivs[ip][idof] * densInvSquared; + } + phaseInternalEnergy.derivs[ip][multifluid::DerivativeOffset::dP] -= densInv; + } +} + template< integer maxNumComp, integer maxNumPhase > GEOSX_HOST_DEVICE inline void diff --git a/src/coreComponents/constitutive/fluid/PVTFunctions/BrineInternalEnergy.cpp b/src/coreComponents/constitutive/fluid/PVTFunctions/BrineInternalEnergy.cpp deleted file mode 100644 index 10b1b88e72d..00000000000 --- a/src/coreComponents/constitutive/fluid/PVTFunctions/BrineInternalEnergy.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * ------------------------------------------------------------------------------------------------------------ - * SPDX-License-Identifier: LGPL-2.1-only - * - * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC - * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2020 TotalEnergies - * Copyright (c) 2019- GEOSX Contributors - * All rights reserved - * - * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. - * ------------------------------------------------------------------------------------------------------------ - */ - -/** - * @file BrineInternalEnergy.cpp - */ - -#include "constitutive/fluid/PVTFunctions/BrineInternalEnergy.hpp" - -namespace geosx -{ - -using namespace stringutilities; - -namespace constitutive -{ - -namespace PVTProps -{ - -BrineInternalEnergy::KernelWrapper -BrineInternalEnergy::createKernelWrapper() const -{ - return KernelWrapper( m_componentMolarWeight ); -} - -REGISTER_CATALOG_ENTRY( PVTFunctionBase, BrineInternalEnergy, string const &, string_array const &, string_array const &, array1d< real64 > const & ) - -} // namespace PVTProps - -} // namespace constitutive - -} // namespace geosx diff --git a/src/coreComponents/constitutive/fluid/PVTFunctions/BrineInternalEnergy.hpp b/src/coreComponents/constitutive/fluid/PVTFunctions/BrineInternalEnergy.hpp deleted file mode 100644 index e2c45db4edd..00000000000 --- a/src/coreComponents/constitutive/fluid/PVTFunctions/BrineInternalEnergy.hpp +++ /dev/null @@ -1,150 +0,0 @@ -/* - * ------------------------------------------------------------------------------------------------------------ - * SPDX-License-Identifier: LGPL-2.1-only - * - * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC - * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2020 TotalEnergies - * Copyright (c) 2019- GEOSX Contributors - * All rights reserved - * - * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. - * ------------------------------------------------------------------------------------------------------------ - */ - -/** - * @file BrineInternalEnergy.hpp - */ - -#ifndef GEOSX_CONSTITUTIVE_FLUID_PVTFUNCTIONS_BRINEINTERNALENERGY_HPP_ -#define GEOSX_CONSTITUTIVE_FLUID_PVTFUNCTIONS_BRINEINTERNALENERGY_HPP_ - -#include "PVTFunctionBase.hpp" - -#include "constitutive/fluid/layouts.hpp" -#include "constitutive/fluid/PVTFunctions/PVTFunctionHelpers.hpp" -#include "functions/TableFunction.hpp" - -namespace geosx -{ - -namespace constitutive -{ - -namespace PVTProps -{ - -class BrineInternalEnergyUpdate final : public PVTFunctionBaseUpdate -{ -public: - - BrineInternalEnergyUpdate( arrayView1d< real64 const > const & componentMolarWeight ) - : PVTFunctionBaseUpdate( componentMolarWeight ) - {} - - template< int USD1 > - GEOSX_HOST_DEVICE - void compute( real64 const & pressure, - real64 const & temperature, - arraySlice1d< real64 const, USD1 > const & phaseComposition, - real64 & value, - bool useMass ) const; - - template< int USD1, int USD2, int USD3 > - GEOSX_HOST_DEVICE - void compute( real64 const & pressure, - real64 const & temperature, - arraySlice1d< real64 const, USD1 > const & phaseComposition, - arraySlice2d< real64 const, USD2 > const & dPhaseComposition, - real64 & value, - arraySlice1d< real64, USD3 > const & dValue, - bool useMass ) const; - - virtual void move( LvArray::MemorySpace const space, bool const touch ) override - { - PVTFunctionBaseUpdate::move( space, touch ); - } - -protected: - -}; - -class BrineInternalEnergy : public PVTFunctionBase -{ -public: - - BrineInternalEnergy( string const & name, - string_array const & inputParams, - string_array const & componentNames, - array1d< real64 > const & componentMolarWeight ) - : PVTFunctionBase( name, - componentNames, - componentMolarWeight ) - { - // reserve for future: more accurate internal energy model should probably have some parameters - GEOSX_UNUSED_VAR ( inputParams ); - } - - static string catalogName() { return "BrineInternalEnergy"; } - - virtual string getCatalogName() const final { return catalogName(); } - - virtual PVTFunctionType functionType() const override - { - return PVTFunctionType::INTERNAL_ENERGY; - } - - /// Type of kernel wrapper for in-kernel update - using KernelWrapper = BrineInternalEnergyUpdate; - - /** - * @brief Create an update kernel wrapper. - * @return the wrapper - */ - KernelWrapper createKernelWrapper() const; - -private: - -}; - -template< int USD1 > -GEOSX_HOST_DEVICE -void BrineInternalEnergyUpdate::compute( real64 const & pressure, - real64 const & temperature, - arraySlice1d< real64 const, USD1 > const & phaseComposition, - real64 & value, - bool useMass ) const -{ - GEOSX_UNUSED_VAR( phaseComposition, useMass ); - - value = 0.001 * pressure + 1.0 * temperature; -} - -template< int USD1, int USD2, int USD3 > -GEOSX_HOST_DEVICE -void BrineInternalEnergyUpdate::compute( real64 const & pressure, - real64 const & temperature, - arraySlice1d< real64 const, USD1 > const & phaseComposition, - arraySlice2d< real64 const, USD2 > const & dPhaseComposition, - real64 & value, - arraySlice1d< real64, USD3 > const & dValue, - bool useMass ) const -{ - GEOSX_UNUSED_VAR( phaseComposition, dPhaseComposition, useMass ); - - using Deriv = multifluid::DerivativeOffset; - - value = 0.001 * pressure + 1.0 * temperature; - LvArray::forValuesInSlice( dValue, []( real64 & val ){ val = 0.0; } ); - dValue[Deriv::dP] = 0.001; - dValue[Deriv::dT] = 1.0; - -} - -} // end namespace PVTProps - -} // end namespace constitutive - -} // end namespace geosx - -#endif //GEOSX_CONSTITUTIVE_FLUID_PVTFUNCTIONS_BRINEINTERNALENERGY_HPP_ diff --git a/src/coreComponents/constitutive/fluid/PVTFunctions/CO2InternalEnergy.cpp b/src/coreComponents/constitutive/fluid/PVTFunctions/CO2InternalEnergy.cpp deleted file mode 100644 index fc78a187634..00000000000 --- a/src/coreComponents/constitutive/fluid/PVTFunctions/CO2InternalEnergy.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * ------------------------------------------------------------------------------------------------------------ - * SPDX-License-Identifier: LGPL-2.1-only - * - * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC - * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2020 TotalEnergies - * Copyright (c) 2019- GEOSX Contributors - * All rights reserved - * - * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. - * ------------------------------------------------------------------------------------------------------------ - */ - -/** - * @file CO2InternalEnergy.cpp - */ - -#include "constitutive/fluid/PVTFunctions/CO2InternalEnergy.hpp" - -namespace geosx -{ - -using namespace stringutilities; - -namespace constitutive -{ - -namespace PVTProps -{ - -CO2InternalEnergy::KernelWrapper -CO2InternalEnergy::createKernelWrapper() const -{ - return KernelWrapper( m_componentMolarWeight ); -} - -REGISTER_CATALOG_ENTRY( PVTFunctionBase, CO2InternalEnergy, string const &, string_array const &, string_array const &, array1d< real64 > const & ) - -} // namespace PVTProps - -} // namespace constitutive - -} // namespace geosx diff --git a/src/coreComponents/constitutive/fluid/PVTFunctions/CO2InternalEnergy.hpp b/src/coreComponents/constitutive/fluid/PVTFunctions/CO2InternalEnergy.hpp deleted file mode 100644 index b766ef0f898..00000000000 --- a/src/coreComponents/constitutive/fluid/PVTFunctions/CO2InternalEnergy.hpp +++ /dev/null @@ -1,151 +0,0 @@ -/* - * ------------------------------------------------------------------------------------------------------------ - * SPDX-License-Identifier: LGPL-2.1-only - * - * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC - * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2018-2020 TotalEnergies - * Copyright (c) 2019- GEOSX Contributors - * All rights reserved - * - * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details. - * ------------------------------------------------------------------------------------------------------------ - */ - -/** - * @file CO2InternalEnergy.hpp - */ - -#ifndef GEOSX_CONSTITUTIVE_FLUID_PVTFUNCTIONS_CO2INTERNALENERGY_HPP_ -#define GEOSX_CONSTITUTIVE_FLUID_PVTFUNCTIONS_CO2INTERNALENERGY_HPP_ - -#include "PVTFunctionBase.hpp" - -#include "constitutive/fluid/layouts.hpp" -#include "constitutive/fluid/PVTFunctions/PVTFunctionHelpers.hpp" -#include "functions/TableFunction.hpp" - -namespace geosx -{ - -namespace constitutive -{ - -namespace PVTProps -{ - -class CO2InternalEnergyUpdate final : public PVTFunctionBaseUpdate -{ -public: - - CO2InternalEnergyUpdate( arrayView1d< real64 const > const & componentMolarWeight ) - : PVTFunctionBaseUpdate( componentMolarWeight ) - {} - - template< int USD1 > - GEOSX_HOST_DEVICE - void compute( real64 const & pressure, - real64 const & temperature, - arraySlice1d< real64 const, USD1 > const & phaseComposition, - real64 & value, - bool useMass ) const; - - template< int USD1, int USD2, int USD3 > - GEOSX_HOST_DEVICE - void compute( real64 const & pressure, - real64 const & temperature, - arraySlice1d< real64 const, USD1 > const & phaseComposition, - arraySlice2d< real64 const, USD2 > const & dPhaseComposition, - real64 & value, - arraySlice1d< real64, USD3 > const & dValue, - bool useMass ) const; - - virtual void move( LvArray::MemorySpace const space, bool const touch ) override - { - PVTFunctionBaseUpdate::move( space, touch ); - } - -protected: - -}; - -class CO2InternalEnergy : public PVTFunctionBase -{ -public: - - CO2InternalEnergy( string const & name, - string_array const & inputParams, - string_array const & componentNames, - array1d< real64 > const & componentMolarWeight ) - : PVTFunctionBase( name, - componentNames, - componentMolarWeight ) - { - // reserve for future: more accurate internal energy model should probably have some parameters - GEOSX_UNUSED_VAR ( inputParams ); - } - - static string catalogName() { return "CO2InternalEnergy"; } - - virtual string getCatalogName() const final { return catalogName(); } - - virtual PVTFunctionType functionType() const override - { - return PVTFunctionType::INTERNAL_ENERGY; - } - - /// Type of kernel wrapper for in-kernel update - using KernelWrapper = CO2InternalEnergyUpdate; - - /** - * @brief Create an update kernel wrapper. - * @return the wrapper - */ - KernelWrapper createKernelWrapper() const; - -private: - -}; - -template< int USD1 > -GEOSX_HOST_DEVICE -void CO2InternalEnergyUpdate::compute( real64 const & pressure, - real64 const & temperature, - arraySlice1d< real64 const, USD1 > const & phaseComposition, - real64 & value, - bool useMass ) const -{ - GEOSX_UNUSED_VAR( phaseComposition, useMass ); - - value = 0.001 * pressure + 1.0 * temperature; -} - -template< int USD1, int USD2, int USD3 > -GEOSX_HOST_DEVICE -void CO2InternalEnergyUpdate::compute( real64 const & pressure, - real64 const & temperature, - arraySlice1d< real64 const, USD1 > const & phaseComposition, - arraySlice2d< real64 const, USD2 > const & dPhaseComposition, - real64 & value, - arraySlice1d< real64, USD3 > const & dValue, - bool useMass ) const -{ - GEOSX_UNUSED_VAR( phaseComposition, dPhaseComposition, useMass ); - - using Deriv = multifluid::DerivativeOffset; - - value = 0.001 * pressure + 1.0 * temperature; - - LvArray::forValuesInSlice( dValue, []( real64 & val ){ val = 0.0; } ); - dValue[Deriv::dP] = 0.001; - dValue[Deriv::dT] = 1.0; - -} - -} // end namespace PVTProps - -} // end namespace constitutive - -} // end namespace geosx - -#endif //GEOSX_CONSTITUTIVE_FLUID_PVTFUNCTIONS_CO2INTERNALENERGY_HPP_ diff --git a/src/coreComponents/constitutive/fluid/PhaseModel.hpp b/src/coreComponents/constitutive/fluid/PhaseModel.hpp index bcbe9c42e16..32d12796c93 100644 --- a/src/coreComponents/constitutive/fluid/PhaseModel.hpp +++ b/src/coreComponents/constitutive/fluid/PhaseModel.hpp @@ -31,23 +31,20 @@ namespace constitutive * @tparam DENS Class describing the density model * @tparam VISC Class describing the viscosity model * @tparam ENTH Class describing the enthalpy model - * @tparam INTENERGY Class describing the internal energy model */ -template< typename DENS, typename VISC, typename ENTH, typename INTENERGY > +template< typename DENS, typename VISC, typename ENTH > struct PhaseModel { using Density = DENS; using Viscosity = VISC; using Enthalpy = ENTH; - using InternalEnergy = INTENERGY; /// Enum used in the constructor to make the distinction between submodel params enum InputParamOrder : integer { DENSITY = 0, ///< position of the density params VISCOSITY = 1, ///< position of the viscosity params - ENTHALPY = 2, ///< position of the enthalpy params - INTERNALENERGY = 3 ///< position of the internal energy params + ENTHALPY = 2 ///< position of the enthalpy params }; /** @@ -72,11 +69,7 @@ struct PhaseModel enthalpy( phaseModelName + "_" + Enthalpy::catalogName(), inputParams[InputParamOrder::ENTHALPY], componentNames, - componentMolarWeight ), - internalEnergy( phaseModelName + "_" + InternalEnergy::catalogName(), - inputParams[InputParamOrder::INTERNALENERGY], - componentNames, - componentMolarWeight ) + componentMolarWeight ) {} /// The phase density model @@ -88,9 +81,6 @@ struct PhaseModel /// The phase enthalpy model (can be NoOp for non-thermal models) Enthalpy enthalpy; - /// The phase internal energy model (can be NoOp for non-thermal models) - InternalEnergy internalEnergy; - /** * @brief Struct storing the submodels wrappers used for in-kernel fluid updates */ @@ -102,16 +92,13 @@ struct PhaseModel * @param[in] dens the density model * @param[in] visc the viscosity model * @param[in] enth the enthalpy model - * @param[in] intEnergy the internal energy model */ KernelWrapper( Density const & dens, Viscosity const & visc, - Enthalpy const & enth, - InternalEnergy const & intEnergy ) + Enthalpy const & enth ) : density( dens.createKernelWrapper() ), viscosity( visc.createKernelWrapper() ), - enthalpy( enth.createKernelWrapper() ), - internalEnergy( intEnergy.createKernelWrapper() ) + enthalpy( enth.createKernelWrapper() ) {} /** @@ -124,7 +111,6 @@ struct PhaseModel density.move( space, touch ); viscosity.move( space, touch ); enthalpy.move( space, touch ); - internalEnergy.move( space, touch ); } /// Kernel wrapper for density updates @@ -136,8 +122,6 @@ struct PhaseModel /// Kernel wrapper for enthalpy updates typename Enthalpy::KernelWrapper enthalpy; - /// Kernel wrapper for internal energy updates - typename InternalEnergy::KernelWrapper internalEnergy; }; /** @@ -148,8 +132,7 @@ struct PhaseModel { return KernelWrapper( density, viscosity, - enthalpy, - internalEnergy ); + enthalpy ); } }; diff --git a/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanicsSolver.cpp b/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanicsSolver.cpp index c5ddf3bb1fe..ed7c3a527b7 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanicsSolver.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/MultiphasePoromechanicsSolver.cpp @@ -336,10 +336,12 @@ void MultiphasePoromechanicsSolver::updateState( DomainPartition & domain ) { forMeshTargets( domain.getMeshBodies(), [&] ( string const &, MeshLevel & mesh, - arrayView1d< string const > const & ) + arrayView1d< string const > const & regionNames ) { ElementRegionManager & elemManager = mesh.getElemManager(); - elemManager.forElementSubRegions< CellElementSubRegion >( [&]( CellElementSubRegion & subRegion ) + elemManager.forElementSubRegions< CellElementSubRegion >( regionNames, + [&]( localIndex const, + CellElementSubRegion & subRegion ) { m_flowSolver->updateFluidState( subRegion ); } ); diff --git a/src/coreComponents/schema/docs/AcousticSEM_other.rst b/src/coreComponents/schema/docs/AcousticSEM_other.rst index edd823f6468..71642d4c7ae 100644 --- a/src/coreComponents/schema/docs/AcousticSEM_other.rst +++ b/src/coreComponents/schema/docs/AcousticSEM_other.rst @@ -1,20 +1,20 @@ -========================= =================================================================================================================================================== ======================================================================= -Name Type Description -========================= =================================================================================================================================================== ======================================================================= -indexSeismoTrace integer Count for output pressure at receivers -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -pressureNp1AtReceivers real64_array2d Pressure value at each receiver for each timestep -receiverIsLocal integer_array Flag that indicates whether the receiver is local to this MPI rank -receiverNodeIds integer_array2d Indices of the nodes (in the right order) for each receiver point -sourceConstants real64_array2d Constant part of the receiver for the nodes listed in m_receiverNodeIds -sourceIsLocal integer_array Flag that indicates whether the source is local to this MPI rank -sourceNodeIds integer_array2d Indices of the nodes (in the right order) for each source point -sourceValue real64_array2d Source Value of the sources -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ======================================================================= +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================= +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================= +indexSeismoTrace integer Count for output pressure at receivers +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +pressureNp1AtReceivers real64_array2d Pressure value at each receiver for each timestep +receiverIsLocal integer_array Flag that indicates whether the receiver is local to this MPI rank +receiverNodeIds integer_array2d Indices of the nodes (in the right order) for each receiver point +sourceConstants real64_array2d Constant part of the receiver for the nodes listed in m_receiverNodeIds +sourceIsLocal integer_array Flag that indicates whether the source is local to this MPI rank +sourceNodeIds integer_array2d Indices of the nodes (in the right order) for each source point +sourceValue real64_array2d Source Value of the sources +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================= diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst +++ b/src/coreComponents/schema/docs/CompositionalMultiphaseFVM_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst index 8e2f2eb6a85..bf32e9bac59 100644 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst +++ b/src/coreComponents/schema/docs/CompositionalMultiphaseHybridFVM_other.rst @@ -1,14 +1,14 @@ -========================= =================================================================================================================================================== ================================ ================================================================ -Name Type Registered On Description -========================= =================================================================================================================================================== ================================ ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -deltaFacePressure real64_array :ref:`DATASTRUCTURE_FaceManager` Accumulated face pressure updates -mimGravityCoefficient real64_array :ref:`DATASTRUCTURE_FaceManager` Mimetic gravity coefficient -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================ ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================ ================================================================ +Name Type Registered On Description +========================= =============================================================================================================================================================================================================================================================================================== ================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +deltaFacePressure real64_array :ref:`DATASTRUCTURE_FaceManager` Accumulated face pressure updates +mimGravityCoefficient real64_array :ref:`DATASTRUCTURE_FaceManager` Mimetic gravity coefficient +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================ ================================================================ diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst index 7acea5a6dbf..aa08bcefbb0 100644 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst +++ b/src/coreComponents/schema/docs/CompositionalMultiphaseReservoir_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst b/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst index 48a09333642..b3804961a57 100644 --- a/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst +++ b/src/coreComponents/schema/docs/CompositionalMultiphaseWell_other.rst @@ -1,14 +1,14 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -WellControls node :ref:`DATASTRUCTURE_WellControls` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +WellControls node :ref:`DATASTRUCTURE_WellControls` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst b/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst index b53cb9d3cce..8bd71bf6b41 100644 --- a/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst +++ b/src/coreComponents/schema/docs/EmbeddedSurfaceGenerator_other.rst @@ -1,14 +1,14 @@ -========================= =================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== -Name Type Registered On Description -========================= =================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -parentEdgeIndex integer_array :ref:`DATASTRUCTURE_embeddedSurfacesNodeManager` Index of parent edge within the mesh object it is registered on. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== +Name Type Registered On Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +parentEdgeIndex integer_array :ref:`DATASTRUCTURE_embeddedSurfacesNodeManager` Index of parent edge within the mesh object it is registered on. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================ ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/FlowProppantTransport_other.rst b/src/coreComponents/schema/docs/FlowProppantTransport_other.rst index 7acea5a6dbf..aa08bcefbb0 100644 --- a/src/coreComponents/schema/docs/FlowProppantTransport_other.rst +++ b/src/coreComponents/schema/docs/FlowProppantTransport_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/Hydrofracture_other.rst b/src/coreComponents/schema/docs/Hydrofracture_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/Hydrofracture_other.rst +++ b/src/coreComponents/schema/docs/Hydrofracture_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/LagrangianContact_other.rst b/src/coreComponents/schema/docs/LagrangianContact_other.rst index 7acea5a6dbf..aa08bcefbb0 100644 --- a/src/coreComponents/schema/docs/LagrangianContact_other.rst +++ b/src/coreComponents/schema/docs/LagrangianContact_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/LaplaceFEM_other.rst b/src/coreComponents/schema/docs/LaplaceFEM_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/LaplaceFEM_other.rst +++ b/src/coreComponents/schema/docs/LaplaceFEM_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst b/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst +++ b/src/coreComponents/schema/docs/MultiphasePoromechanics_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst b/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst +++ b/src/coreComponents/schema/docs/PhaseFieldDamageFEM_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst b/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst +++ b/src/coreComponents/schema/docs/PhaseFieldFracture_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/ProppantTransport_other.rst b/src/coreComponents/schema/docs/ProppantTransport_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/ProppantTransport_other.rst +++ b/src/coreComponents/schema/docs/ProppantTransport_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseFVM_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst index 56309599fa0..7cd3eeef08a 100644 --- a/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseHybridFVM_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ================================ ================================================================ -Name Type Registered On Description -========================= =================================================================================================================================================== ================================ ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -deltaFacePressure real64_array :ref:`DATASTRUCTURE_FaceManager` Accumulated face pressure updates -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================ ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================ ================================================================ +Name Type Registered On Description +========================= =============================================================================================================================================================================================================================================================================================== ================================ ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +deltaFacePressure real64_array :ref:`DATASTRUCTURE_FaceManager` Accumulated face pressure updates +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================ ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst index 7acea5a6dbf..aa08bcefbb0 100644 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst +++ b/src/coreComponents/schema/docs/SinglePhasePoromechanicsEmbeddedFractures_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst b/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst +++ b/src/coreComponents/schema/docs/SinglePhasePoromechanics_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst b/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst index 5b4f62fa9a3..c874c188464 100644 --- a/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseProppantFVM_other.rst @@ -1,12 +1,12 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst b/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst index 7acea5a6dbf..aa08bcefbb0 100644 --- a/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseReservoir_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/SinglePhaseWell_other.rst b/src/coreComponents/schema/docs/SinglePhaseWell_other.rst index 48a09333642..b3804961a57 100644 --- a/src/coreComponents/schema/docs/SinglePhaseWell_other.rst +++ b/src/coreComponents/schema/docs/SinglePhaseWell_other.rst @@ -1,14 +1,14 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -WellControls node :ref:`DATASTRUCTURE_WellControls` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +WellControls node :ref:`DATASTRUCTURE_WellControls` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst b/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst index 7acea5a6dbf..aa08bcefbb0 100644 --- a/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst +++ b/src/coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst b/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst index 8ab18aa4617..d6506d6fedf 100644 --- a/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst +++ b/src/coreComponents/schema/docs/SolidMechanicsLagrangianSSLE_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxForce real64 The maximum force contribution in the problem domain. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst b/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst index 8ab18aa4617..d6506d6fedf 100644 --- a/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst +++ b/src/coreComponents/schema/docs/SolidMechanics_LagrangianFEM_other.rst @@ -1,13 +1,13 @@ -========================= =================================================================================================================================================== ================================================================ -Name Type Description -========================= =================================================================================================================================================== ================================================================ -maxForce real64 The maximum force contribution in the problem domain. -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ================================================================ +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ +maxForce real64 The maximum force contribution in the problem domain. +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ================================================================ diff --git a/src/coreComponents/schema/docs/SurfaceGenerator_other.rst b/src/coreComponents/schema/docs/SurfaceGenerator_other.rst index 96cfc6ecec7..37b9b97583d 100644 --- a/src/coreComponents/schema/docs/SurfaceGenerator_other.rst +++ b/src/coreComponents/schema/docs/SurfaceGenerator_other.rst @@ -1,18 +1,18 @@ -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -Name Type Description -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== -discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. -failCriterion integer (no description available) -maxStableDt real64 Value of the Maximum Stable Timestep for this solver. -meshTargets geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. -tipEdges LvArray_SortedArray< int, int, LvArray_ChaiBuffer > Set containing all the tip edges -tipFaces LvArray_SortedArray< int, int, LvArray_ChaiBuffer > Set containing all the tip faces -tipNodes LvArray_SortedArray< int, int, LvArray_ChaiBuffer > Set containing all the nodes at the fracture tip -trailingFaces LvArray_SortedArray< int, int, LvArray_ChaiBuffer > Set containing all the trailing faces -LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` -NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` -========================= =================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +Name Type Description +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== +discretization string Name of discretization object (defined in the :ref:`NumericalMethodsManager`) to use for this solver. For instance, if this is a Finite Element Solver, the name of a :ref:`FiniteElement` should be specified. If this is a Finite Volume Method, the name of a :ref:`FiniteVolume` discretization should be specified. +failCriterion integer (no description available) +maxStableDt real64 Value of the Maximum Stable Timestep for this solver. +meshTargets geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > MeshBody/Region combinations that the solver will be applied to. +tipEdges LvArray_SortedArray< int, int, LvArray_ChaiBuffer > Set containing all the tip edges +tipFaces LvArray_SortedArray< int, int, LvArray_ChaiBuffer > Set containing all the tip faces +tipNodes LvArray_SortedArray< int, int, LvArray_ChaiBuffer > Set containing all the nodes at the fracture tip +trailingFaces LvArray_SortedArray< int, int, LvArray_ChaiBuffer > Set containing all the trailing faces +LinearSolverParameters node :ref:`DATASTRUCTURE_LinearSolverParameters` +NonlinearSolverParameters node :ref:`DATASTRUCTURE_NonlinearSolverParameters` +========================= =============================================================================================================================================================================================================================================================================================== ======================================================================================================================================================================================================================================================================================================================== diff --git a/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst b/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst index 825f9d230d6..b1b2c45ed80 100644 --- a/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst +++ b/src/coreComponents/schema/docs/TwoPointFluxApproximation_other.rst @@ -1,15 +1,15 @@ -======================== =================================================================================================================================================== ======================================== -Name Type Description -======================== =================================================================================================================================================== ======================================== -cellStencil geosx_CellElementStencilTPFA (no description available) -coefficientName string Name of coefficient field -edfmStencil geosx_EmbeddedSurfaceToCellStencil (no description available) -faceElementToCellStencil geosx_FaceElementToCellStencil (no description available) -fieldName string Name of primary solution field -fractureStencil geosx_SurfaceElementStencil (no description available) -targetRegions geosx_mapBase< std_string, LvArray_Array< std_string, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > List of regions to build the stencil for -======================== =================================================================================================================================================== ======================================== +======================== =============================================================================================================================================================================================================================================================================================== ======================================== +Name Type Description +======================== =============================================================================================================================================================================================================================================================================================== ======================================== +cellStencil geosx_CellElementStencilTPFA (no description available) +coefficientName string Name of coefficient field +edfmStencil geosx_EmbeddedSurfaceToCellStencil (no description available) +faceElementToCellStencil geosx_FaceElementToCellStencil (no description available) +fieldName string Name of primary solution field +fractureStencil geosx_SurfaceElementStencil (no description available) +targetRegions geosx_mapBase< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, LvArray_Array< std___cxx11_basic_string< char, std_char_traits< char >, std_allocator< char > >, 1, camp_int_seq< long, 0l >, int, LvArray_ChaiBuffer >, std_integral_constant< bool, true > > List of regions to build the stencil for +======================== =============================================================================================================================================================================================================================================================================================== ======================================== diff --git a/src/coreComponents/schema/schema.xsd.other b/src/coreComponents/schema/schema.xsd.other index 249e9afcbf0..8ddb1544352 100644 --- a/src/coreComponents/schema/schema.xsd.other +++ b/src/coreComponents/schema/schema.xsd.other @@ -412,7 +412,7 @@ - + @@ -480,7 +480,7 @@ - + @@ -504,7 +504,7 @@ - + @@ -514,7 +514,7 @@ - + @@ -526,7 +526,7 @@ - + @@ -539,7 +539,7 @@ - + @@ -552,7 +552,7 @@ - + @@ -564,7 +564,7 @@ - + @@ -574,7 +574,7 @@ - + @@ -586,7 +586,7 @@ - + @@ -596,7 +596,7 @@ - + @@ -606,7 +606,7 @@ - + @@ -616,7 +616,7 @@ - + @@ -626,7 +626,7 @@ - + @@ -636,7 +636,7 @@ - + @@ -646,7 +646,7 @@ - + @@ -656,7 +656,7 @@ - + @@ -666,7 +666,7 @@ - + @@ -678,7 +678,7 @@ - + @@ -688,7 +688,7 @@ - + @@ -700,7 +700,7 @@ - + @@ -713,7 +713,7 @@ - + @@ -725,7 +725,7 @@ - + @@ -737,7 +737,7 @@ - + @@ -749,7 +749,7 @@ - + @@ -763,7 +763,7 @@ - + diff --git a/src/coreComponents/unitTests/constitutiveTests/testCO2BrinePVTModels.cpp b/src/coreComponents/unitTests/constitutiveTests/testCO2BrinePVTModels.cpp index 4cf476752e1..6ebfebfef9f 100644 --- a/src/coreComponents/unitTests/constitutiveTests/testCO2BrinePVTModels.cpp +++ b/src/coreComponents/unitTests/constitutiveTests/testCO2BrinePVTModels.cpp @@ -25,8 +25,6 @@ #include "constitutive/fluid/PVTFunctions/CO2Solubility.hpp" #include "constitutive/fluid/PVTFunctions/BrineEnthalpy.hpp" #include "constitutive/fluid/PVTFunctions/CO2Enthalpy.hpp" -#include "constitutive/fluid/PVTFunctions/BrineInternalEnergy.hpp" -#include "constitutive/fluid/PVTFunctions/CO2InternalEnergy.hpp" #include "mainInterface/GeosxState.hpp" #include "mainInterface/initialization.hpp" @@ -49,9 +47,6 @@ static const char * pvtLiquidPhillipsTableContent = "DensityFun PhillipsBrineDen // Used also for gas phase static const char * pvtLiquidEnthalpyTableContent = "EnthalpyFun BrineEnthalpy 1e6 1.5e7 5e4 367.15 369.15 1 0.2"; -// InternalEnergy model has no parameters -static const char * pvtLiquidInternalEnergyTableContent = "InternalEnergyFun BrineInternalEnergy"; - // the last are set relatively high (1e-4) to increase derivative value and check it properly static const char * pvtLiquidEzrokhiTableContent = "DensityFun EzrokhiBrineDensity 2.01e-6 -6.34e-7 1e-4\n" "ViscosityFun EzrokhiBrineViscosity 2.42e-7 0 1e-4"; @@ -1121,208 +1116,6 @@ TEST_F( CO2EnthalpyTest, CO2EnthalpyMolarValuesAndDeriv ) } } -class BrineInternalEnergyTest : public ::testing::Test -{ -public: - BrineInternalEnergyTest() - { - writeTableToFile( filename, pvtLiquidInternalEnergyTableContent ); - pvtFunction = makePVTFunction< BrineInternalEnergy >( filename, key ); - - } - - ~BrineInternalEnergyTest() override - { - removeFile( filename ); - } - -protected: - string const key = "InternalEnergyFun"; - string const filename = "pvtliquid.txt"; - std::unique_ptr< BrineInternalEnergy > pvtFunction; -}; - -TEST_F( BrineInternalEnergyTest, BrineInternalEnergyMassValuesAndDeriv ) -{ - // when checking numerical derivatives, do not fall on the coordinate points of the tables!! - // (see the txt file defined at the top of the file for the definition of the coordinates) - real64 const P[3] = { 5.012e6, 7.546e6, 1.289e7 }; - real64 const TC[3] = { 94.5, 95.1, 95.6 }; - array1d< real64 > comp( 2 ); - comp[0] = 0.304; comp[1] = 0.696; - real64 const deltaComp = 0.2; - - real64 const eps = sqrt( std::numeric_limits< real64 >::epsilon()); - real64 const relTol = 5e-5; - - - - BrineInternalEnergy::KernelWrapper pvtFunctionWrapper = pvtFunction->createKernelWrapper(); - real64 const savedValues[] = { 5106.500000, 5107.100000, 5107.600000, 7640.500000, 7641.100000, 7641.600000, - 12984.500000, 12985.100000, 12985.600000, 5106.500000, 5107.100000, 5107.600000, - 7640.500000, 7641.100000, 7641.600000, 12984.500000, 12985.100000, 12985.600000, - 5106.500000, 5107.100000, 5107.600000, 7640.500000, 7641.100000, 7641.600000, - 12984.500000, 12985.100000, 12985.600000}; - - - integer counter = 0; - for( integer iComp = 0; iComp < 3; ++iComp ) - { - for( integer iPres = 0; iPres < 3; ++iPres ) - { - for( integer iTemp = 0; iTemp < 3; ++iTemp ) - { - testValuesAgainstPreviousImplementation( pvtFunctionWrapper, - P[iPres], TC[iTemp], comp, savedValues[counter], true, relTol ); - testNumericalDerivatives( pvtFunctionWrapper, P[iPres], TC[iTemp], comp, true, eps, relTol ); - counter++; - } - } - comp[0] += deltaComp; - comp[1] = 1 - comp[0]; - } -} - -TEST_F( BrineInternalEnergyTest, BrineInternalEnergyMolarValuesAndDeriv ) -{ - // when checking numerical derivatives, do not fall on the coordinate points of the tables!! - // (see the txt file defined at the top of the file for the definition of the coordinates) - real64 const P[3] = { 5.012e6, 7.546e6, 1.289e7 }; - real64 const TC[3] = { 94.5, 95.1, 95.6 }; - array1d< real64 > comp( 2 ); - comp[0] = 0.304; comp[1] = 0.696; - real64 const deltaComp = 0.2; - - real64 const eps = sqrt( std::numeric_limits< real64 >::epsilon()); - real64 const relTol = 5e-5; - - - - BrineInternalEnergy::KernelWrapper pvtFunctionWrapper = pvtFunction->createKernelWrapper(); - real64 const savedValues[] = { 5106.500000, 5107.100000, 5107.600000, 7640.500000, 7641.100000, 7641.600000, - 12984.500000, 12985.100000, 12985.600000, 5106.500000, 5107.100000, 5107.600000, - 7640.500000, 7641.100000, 7641.600000, 12984.500000, 12985.100000, 12985.600000, - 5106.500000, 5107.100000, 5107.600000, 7640.500000, 7641.100000, 7641.600000, - 12984.500000, 12985.100000, 12985.600000}; - integer counter = 0; - for( integer iComp = 0; iComp < 3; ++iComp ) - { - for( integer iPres = 0; iPres < 3; ++iPres ) - { - for( integer iTemp = 0; iTemp < 3; ++iTemp ) - { - testValuesAgainstPreviousImplementation( pvtFunctionWrapper, - P[iPres], TC[iTemp], comp, savedValues[counter], false, relTol ); - testNumericalDerivatives( pvtFunctionWrapper, P[iPres], TC[iTemp], comp, false, eps, relTol ); - counter++; - } - } - comp[0] += deltaComp; - comp[1] = 1 - comp[0]; - } -} - -class CO2InternalEnergyTest : public ::testing::Test -{ -public: - CO2InternalEnergyTest() - { - writeTableToFile( filename, pvtLiquidInternalEnergyTableContent ); - pvtFunction = makePVTFunction< CO2InternalEnergy >( filename, key ); - - } - - ~CO2InternalEnergyTest() override - { - removeFile( filename ); - } - -protected: - string const key = "InternalEnergyFun"; - string const filename = "pvtgas.txt"; - std::unique_ptr< CO2InternalEnergy > pvtFunction; -}; - -TEST_F( CO2InternalEnergyTest, CO2InternalEnergyMassValuesAndDeriv ) -{ - // when checking numerical derivatives, do not fall on the coordinate points of the tables!! - // (see the txt file defined at the top of the file for the definition of the coordinates) - real64 const P[3] = { 5.012e6, 7.546e6, 1.289e7 }; - real64 const TC[3] = { 94.5, 95.1, 95.6 }; - array1d< real64 > comp( 2 ); - comp[0] = 0.304; comp[1] = 0.696; - real64 const deltaComp = 0.2; - - real64 const eps = sqrt( std::numeric_limits< real64 >::epsilon()); - real64 const relTol = 5e-5; - - - - CO2InternalEnergy::KernelWrapper pvtFunctionWrapper = pvtFunction->createKernelWrapper(); - real64 const savedValues[] = { 5106.500000, 5107.100000, 5107.600000, 7640.500000, 7641.100000, 7641.600000, - 12984.500000, 12985.100000, 12985.600000, 5106.500000, 5107.100000, 5107.600000, - 7640.500000, 7641.100000, 7641.600000, 12984.500000, 12985.100000, 12985.600000, - 5106.500000, 5107.100000, 5107.600000, 7640.500000, 7641.100000, 7641.600000, - 12984.500000, 12985.100000, 12985.600000}; - - - integer counter = 0; - for( integer iComp = 0; iComp < 3; ++iComp ) - { - for( integer iPres = 0; iPres < 3; ++iPres ) - { - for( integer iTemp = 0; iTemp < 3; ++iTemp ) - { - testValuesAgainstPreviousImplementation( pvtFunctionWrapper, - P[iPres], TC[iTemp], comp, savedValues[counter], true, relTol ); - testNumericalDerivatives( pvtFunctionWrapper, P[iPres], TC[iTemp], comp, true, eps, relTol ); - counter++; - } - } - comp[0] += deltaComp; - comp[1] = 1 - comp[0]; - } -} - -TEST_F( CO2InternalEnergyTest, CO2InternalEnergyMolarValuesAndDeriv ) -{ - // when checking numerical derivatives, do not fall on the coordinate points of the tables!! - // (see the txt file defined at the top of the file for the definition of the coordinates) - real64 const P[3] = { 5.012e6, 7.546e6, 1.289e7 }; - real64 const TC[3] = { 94.5, 95.1, 95.6 }; - array1d< real64 > comp( 2 ); - comp[0] = 0.304; comp[1] = 0.696; - real64 const deltaComp = 0.2; - - real64 const eps = sqrt( std::numeric_limits< real64 >::epsilon()); - real64 const relTol = 5e-5; - - - - CO2InternalEnergy::KernelWrapper pvtFunctionWrapper = pvtFunction->createKernelWrapper(); - real64 const savedValues[] = { 5106.500000, 5107.100000, 5107.600000, 7640.500000, 7641.100000, 7641.600000, - 12984.500000, 12985.100000, 12985.600000, 5106.500000, 5107.100000, 5107.600000, - 7640.500000, 7641.100000, 7641.600000, 12984.500000, 12985.100000, 12985.600000, - 5106.500000, 5107.100000, 5107.600000, 7640.500000, 7641.100000, 7641.600000, - 12984.500000, 12985.100000, 12985.600000}; - integer counter = 0; - for( integer iComp = 0; iComp < 3; ++iComp ) - { - for( integer iPres = 0; iPres < 3; ++iPres ) - { - for( integer iTemp = 0; iTemp < 3; ++iTemp ) - { - testValuesAgainstPreviousImplementation( pvtFunctionWrapper, - P[iPres], TC[iTemp], comp, savedValues[counter], false, relTol ); - testNumericalDerivatives( pvtFunctionWrapper, P[iPres], TC[iTemp], comp, false, eps, relTol ); - counter++; - } - } - comp[0] += deltaComp; - comp[1] = 1 - comp[0]; - } -} - int main( int argc, char * * argv ) {