#include <AquiferCarterTracy.hpp>

Inheritance diagram for Opm::AquiferCarterTracy< TypeTag >:
Inheritance graph

Public Types

using Base = AquiferAnalytical< TypeTag >
 
using BlackoilIndices = GetPropType< TypeTag, Properties::Indices >
 
using ElementContext = GetPropType< TypeTag, Properties::ElementContext >
 
using Eval = DenseAd::Evaluation< Scalar, numEq >
 
using FluidState = BlackOilFluidState< Eval, FluidSystem, enableTemperature, enableEnergy, BlackoilIndices::gasEnabled, enableVapwat, enableBrine, enableSaltPrecipitation, has_disgas_in_water, BlackoilIndices::numPhases >
 
using FluidSystem = GetPropType< TypeTag, Properties::FluidSystem >
 
using IntensiveQuantities = GetPropType< TypeTag, Properties::IntensiveQuantities >
 
using RateVector = GetPropType< TypeTag, Properties::RateVector >
 
using Scalar = GetPropType< TypeTag, Properties::Scalar >
 
using Simulator = GetPropType< TypeTag, Properties::Simulator >
 
using ElementMapper = GetPropType< TypeTag, Properties::ElementMapper >
 
enum  { enableTemperature = getPropValue<TypeTag, Properties::EnableTemperature>() }
 
enum  { enableEnergy = getPropValue<TypeTag, Properties::EnableEnergy>() }
 
enum  { enableBrine = getPropValue<TypeTag, Properties::EnableBrine>() }
 
enum  { enableVapwat = getPropValue<TypeTag, Properties::EnableVapwat>() }
 
enum  { has_disgas_in_water = getPropValue<TypeTag, Properties::EnableDisgasInWater>() }
 
enum  { enableSaltPrecipitation = getPropValue<TypeTag, Properties::EnableSaltPrecipitation>() }
 

Public Member Functions

 AquiferCarterTracy (const std::vector< Aquancon::AquancCell > &connections, const Simulator &simulator, const AquiferCT::AQUCT_data &aquct_data)
 
void endTimeStep () override
 
data::AquiferData aquiferData () const override
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 
bool operator== (const AquiferCarterTracy &rhs) const
 
void computeFaceAreaFraction (const std::vector< Scalar > &total_face_area) override
 
virtual void computeFaceAreaFraction (const std::vector< Scalar > &total_face_area)=0
 
Scalar totalFaceArea () const override
 
void initFromRestart (const data::Aquifers &aquiferSoln) override
 
void initialSolutionApplied () override
 
void beginTimeStep () override
 
void addToSource (RateVector &rates, const unsigned cellIdx, const unsigned timeIdx) override
 
template<class Context >
void addToSource (RateVector &rates, const Context &context, const unsigned spaceIdx, const unsigned timeIdx)
 
std::size_t size () const
 
bool operator== (const AquiferAnalytical &rhs) const
 
int aquiferID () const
 

Static Public Member Functions

static AquiferCarterTracy serializationTestObject (const Simulator &simulator)
 

Static Public Attributes

static constexpr int numEq = BlackoilIndices::numEq
 

Protected Member Functions

void assignRestartData (const data::AquiferData &xaq) override
 
std::pair< Scalar, ScalargetInfluenceTableValues (const Scalar td_plus_dt)
 
Scalar dpai (const int idx) const
 
std::pair< Scalar, ScalarcalculateEqnConstants (const int idx, const Simulator &simulator)
 
std::size_t pvtRegionIdx () const
 
void calculateInflowRate (int idx, const Simulator &simulator) override
 
void calculateAquiferConstants () override
 
void calculateAquiferCondition () override
 
Scalar aquiferDepth () const override
 
Scalar gravity_ () const
 
int compIdx_ () const
 
void initQuantities ()
 
void updateCellPressure (std::vector< Eval > &pressure_water, const int idx, const IntensiveQuantities &intQuants)
 
void updateCellPressure (std::vector< Scalar > &pressure_water, const int idx, const IntensiveQuantities &intQuants)
 
void initializeConnectionMappings ()
 
void initializeConnectionDepths ()
 
Scalar calculateReservoirEquilibrium ()
 
bool co2store_or_h2store_ () const
 
int phaseIdx_ () const
 

Protected Attributes

AquiferCT::AQUCT_data aquct_data_
 
Scalar beta_
 
Scalar fluxValue_ {0}
 
Scalar dimensionless_time_ {0}
 
Scalar dimensionless_pressure_ {0}
 
const std::vector< Aquancon::AquancCell > connections_
 
std::vector< ScalarfaceArea_connected_
 
std::vector< int > cellToConnectionIdx_
 
std::vector< Scalarcell_depth_
 
std::vector< Scalarpressure_previous_
 
std::vector< Evalpressure_current_
 
std::vector< EvalQai_
 
std::vector< Scalaralphai_
 
Scalar Tc_ {}
 
Scalar pa0_ {}
 
std::optional< ScalarTa0_ {}
 
Scalar rhow_ {}
 
Scalar total_face_area_ {}
 
Scalar area_fraction_ {Scalar{1}}
 
Eval W_flux_
 
bool solution_set_from_restart_ {false}
 
bool has_active_connection_on_proc_ {false}
 
const int aquiferID_ {}
 
const Simulatorsimulator_
 

Member Typedef Documentation

◆ Base

template<typename TypeTag >
using Opm::AquiferCarterTracy< TypeTag >::Base = AquiferAnalytical<TypeTag>

◆ BlackoilIndices

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::BlackoilIndices = GetPropType<TypeTag, Properties::Indices>

◆ ElementContext

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::ElementContext = GetPropType<TypeTag, Properties::ElementContext>

◆ ElementMapper

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::ElementMapper = GetPropType<TypeTag, Properties::ElementMapper>

◆ Eval

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::Eval = DenseAd::Evaluation<Scalar, numEq>

◆ FluidState

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::FluidState = BlackOilFluidState<Eval, FluidSystem, enableTemperature, enableEnergy, BlackoilIndices::gasEnabled, enableVapwat, enableBrine, enableSaltPrecipitation, has_disgas_in_water, BlackoilIndices::numPhases>

◆ FluidSystem

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>

◆ IntensiveQuantities

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::IntensiveQuantities = GetPropType<TypeTag, Properties::IntensiveQuantities>

◆ RateVector

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::RateVector = GetPropType<TypeTag, Properties::RateVector>

◆ Scalar

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::Scalar = GetPropType<TypeTag, Properties::Scalar>

◆ Simulator

template<typename TypeTag >
using Opm::AquiferAnalytical< TypeTag >::Simulator = GetPropType<TypeTag, Properties::Simulator>

Member Enumeration Documentation

◆ anonymous enum

template<typename TypeTag >
anonymous enum
inherited
Enumerator
enableTemperature 

◆ anonymous enum

template<typename TypeTag >
anonymous enum
inherited
Enumerator
enableEnergy 

◆ anonymous enum

template<typename TypeTag >
anonymous enum
inherited
Enumerator
enableBrine 

◆ anonymous enum

template<typename TypeTag >
anonymous enum
inherited
Enumerator
enableVapwat 

◆ anonymous enum

template<typename TypeTag >
anonymous enum
inherited
Enumerator
has_disgas_in_water 

◆ anonymous enum

template<typename TypeTag >
anonymous enum
inherited
Enumerator
enableSaltPrecipitation 

Constructor & Destructor Documentation

◆ AquiferCarterTracy()

template<typename TypeTag >
Opm::AquiferCarterTracy< TypeTag >::AquiferCarterTracy ( const std::vector< Aquancon::AquancCell > &  connections,
const Simulator simulator,
const AquiferCT::AQUCT_data &  aquct_data 
)
inline

Member Function Documentation

◆ addToSource() [1/2]

template<typename TypeTag >
template<class Context >
void Opm::AquiferInterface< TypeTag >::addToSource ( RateVector rates,
const Context &  context,
const unsigned  spaceIdx,
const unsigned  timeIdx 
)
inlineinherited

◆ addToSource() [2/2]

◆ aquiferData()

◆ aquiferDepth()

template<typename TypeTag >
Scalar Opm::AquiferCarterTracy< TypeTag >::aquiferDepth ( ) const
inlineoverrideprotectedvirtual

◆ aquiferID()

◆ assignRestartData()

template<typename TypeTag >
void Opm::AquiferCarterTracy< TypeTag >::assignRestartData ( const data::AquiferData &  xaq)
inlineoverrideprotectedvirtual

◆ beginTimeStep()

◆ calculateAquiferCondition()

◆ calculateAquiferConstants()

template<typename TypeTag >
void Opm::AquiferCarterTracy< TypeTag >::calculateAquiferConstants ( )
inlineoverrideprotectedvirtual

◆ calculateEqnConstants()

◆ calculateInflowRate()

◆ calculateReservoirEquilibrium()

◆ co2store_or_h2store_()

◆ compIdx_()

template<typename TypeTag >
int Opm::AquiferAnalytical< TypeTag >::compIdx_ ( ) const
inlineprotectedinherited

◆ computeFaceAreaFraction() [1/2]

◆ computeFaceAreaFraction() [2/2]

template<typename TypeTag >
virtual void Opm::AquiferInterface< TypeTag >::computeFaceAreaFraction ( const std::vector< Scalar > &  total_face_area)
pure virtualinherited

◆ dpai()

◆ endTimeStep()

◆ getInfluenceTableValues()

template<typename TypeTag >
std::pair< Scalar, Scalar > Opm::AquiferCarterTracy< TypeTag >::getInfluenceTableValues ( const Scalar  td_plus_dt)
inlineprotected

◆ gravity_()

◆ initFromRestart()

◆ initializeConnectionDepths()

◆ initializeConnectionMappings()

◆ initialSolutionApplied()

template<typename TypeTag >
void Opm::AquiferAnalytical< TypeTag >::initialSolutionApplied ( )
inlineoverridevirtualinherited

◆ initQuantities()

◆ operator==() [1/2]

◆ operator==() [2/2]

◆ phaseIdx_()

◆ pvtRegionIdx()

template<typename TypeTag >
std::size_t Opm::AquiferCarterTracy< TypeTag >::pvtRegionIdx ( ) const
inlineprotected

◆ serializationTestObject()

template<typename TypeTag >
static AquiferCarterTracy Opm::AquiferCarterTracy< TypeTag >::serializationTestObject ( const Simulator simulator)
inlinestatic

◆ serializeOp()

template<typename TypeTag >
template<class Serializer >
void Opm::AquiferCarterTracy< TypeTag >::serializeOp ( Serializer &  serializer)
inline

◆ size()

◆ totalFaceArea()

template<typename TypeTag >
Scalar Opm::AquiferAnalytical< TypeTag >::totalFaceArea ( ) const
inlineoverridevirtualinherited

◆ updateCellPressure() [1/2]

template<typename TypeTag >
void Opm::AquiferAnalytical< TypeTag >::updateCellPressure ( std::vector< Eval > &  pressure_water,
const int  idx,
const IntensiveQuantities intQuants 
)
inlineprotectedinherited

◆ updateCellPressure() [2/2]

template<typename TypeTag >
void Opm::AquiferAnalytical< TypeTag >::updateCellPressure ( std::vector< Scalar > &  pressure_water,
const int  idx,
const IntensiveQuantities intQuants 
)
inlineprotectedinherited

Member Data Documentation

◆ alphai_

◆ aquct_data_

template<typename TypeTag >
AquiferCT::AQUCT_data Opm::AquiferCarterTracy< TypeTag >::aquct_data_
protected

◆ aquiferID_

template<typename TypeTag >
const int Opm::AquiferInterface< TypeTag >::aquiferID_ {}
protectedinherited

◆ area_fraction_

template<typename TypeTag >
Scalar Opm::AquiferAnalytical< TypeTag >::area_fraction_ {Scalar{1}}
protectedinherited

◆ beta_

template<typename TypeTag >
Scalar Opm::AquiferCarterTracy< TypeTag >::beta_
protected

◆ cell_depth_

◆ cellToConnectionIdx_

◆ connections_

template<typename TypeTag >
const std::vector<Aquancon::AquancCell> Opm::AquiferAnalytical< TypeTag >::connections_
protectedinherited

◆ dimensionless_pressure_

◆ dimensionless_time_

◆ faceArea_connected_

template<typename TypeTag >
std::vector<Scalar> Opm::AquiferAnalytical< TypeTag >::faceArea_connected_
protectedinherited

◆ fluxValue_

◆ has_active_connection_on_proc_

template<typename TypeTag >
bool Opm::AquiferAnalytical< TypeTag >::has_active_connection_on_proc_ {false}
protectedinherited

◆ numEq

template<typename TypeTag >
constexpr int Opm::AquiferAnalytical< TypeTag >::numEq = BlackoilIndices::numEq
staticconstexprinherited

◆ pa0_

◆ pressure_current_

◆ pressure_previous_

◆ Qai_

◆ rhow_

◆ simulator_

◆ solution_set_from_restart_

◆ Ta0_

◆ Tc_

◆ total_face_area_

template<typename TypeTag >
Scalar Opm::AquiferAnalytical< TypeTag >::total_face_area_ {}
protectedinherited

◆ W_flux_


The documentation for this class was generated from the following file: