Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions > Class Template Reference

#include <EulerUpstreamImplicit.hpp>

Public Member Functions

 EulerUpstreamImplicit ()
 
 EulerUpstreamImplicit (const GridInterface &grid, const ReservoirProperties &resprop, const BoundaryConditions &boundary)
 
void init (const Opm::parameter::ParameterGroup &param)
 
void init (const Opm::parameter::ParameterGroup &param, const GridInterface &grid, const ReservoirProperties &resprop, const BoundaryConditions &boundary)
 
void initObj (const GridInterface &grid, const ReservoirProperties &resprop, const BoundaryConditions &boundary)
 
void display ()
 
template<class PressureSolution >
bool transportSolve (std::vector< double > &saturation, const double time, const typename GridInterface::Vector &gravity, const PressureSolution &pressure_sol, const Opm::SparseVector< double > &injection_rates) const
 Solve transport equation, evolving. More...
 
template<class PressureSolution >
bool transportSolve (std::vector< double > &saturation, const double time, const typename GI::Vector &gravity, const PressureSolution &pressure_sol, const Opm::SparseVector< double > &injection_rates) const
 

Protected Types

typedef Opm::TwophaseFluidWrapper TwophaseFluid
 
typedef Opm::SinglePointUpwindTwoPhase< TwophaseFluidTransportModel
 
typedef Dune::FieldVector< double, 1 > ScalarVectorBlockType
 
typedef Dune::FieldMatrix< double, 1, 1 > ScalarMatrixBlockType
 
typedef Dune::BlockVector< ScalarVectorBlockTypeScalarBlockVector
 
typedef Dune::BCRSMatrix< ScalarMatrixBlockTypeScalarBCRSMatrix
 
typedef Opm::ImplicitTransportDefault::NewtonVectorCollection< ScalarBlockVectorNVecColl
 
typedef Opm::ImplicitTransportDefault::JacobianSystem< ScalarBCRSMatrix, NVecCollJacSys
 
typedef Opm::LinearSolverBICGSTAB LinearSolver
 
typedef Opm::ImplicitTransport< TransportModel, JacSys, Opm::MaxNormDune, Opm::ImplicitTransportDefault::VectorNegater, Opm::ImplicitTransportDefault::VectorZero, Opm::ImplicitTransportDefault::MatrixZero, Opm::ImplicitTransportDefault::VectorAssign > TransportSolver
 

Protected Member Functions

template<class PressureSolution >
void smallTimeStep (std::vector< double > &saturation, const double time, const typename GridInterface::Vector &gravity, const PressureSolution &pressure_sol, const Opm::SparseVector< double > &injection_rates) const
 
void checkAndPossiblyClampSat (std::vector< double > &s) const
 

Protected Attributes

GridAdapter mygrid_
 
ReservoirProperties myrp_
 
bool check_sat_
 
bool clamp_sat_
 
int max_repeats_
 
std::vector< double > porevol_
 
std::vector< int > periodic_cells_
 
std::vector< int > periodic_faces_
 
std::vector< int > periodic_nbfaces_
 
std::vector< int > periodic_hfaces_
 
std::vector< int > direclet_cells_
 
std::vector< double > direclet_sat_
 
std::vector< double > direclet_hfaces_
 
std::vector< double > htrans_
 
Opm::ImplicitTransportDetails::NRControl ctrl_
 

Detailed Description

template<class GridInterface, class ReservoirProperties, class BoundaryConditions>
class Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >

Class for doing simple transport by implicit Euler upstream method for general grid.

Template Parameters

Member Typedef Documentation

◆ JacSys

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Opm::ImplicitTransportDefault::JacobianSystem< ScalarBCRSMatrix, NVecColl > Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::JacSys
protected

◆ LinearSolver

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Opm::LinearSolverBICGSTAB Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::LinearSolver
protected

◆ NVecColl

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Opm::ImplicitTransportDefault::NewtonVectorCollection< ScalarBlockVector > Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::NVecColl
protected

◆ ScalarBCRSMatrix

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Dune::BCRSMatrix<ScalarMatrixBlockType> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::ScalarBCRSMatrix
protected

◆ ScalarBlockVector

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Dune::BlockVector<ScalarVectorBlockType> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::ScalarBlockVector
protected

◆ ScalarMatrixBlockType

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Dune::FieldMatrix<double, 1, 1> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::ScalarMatrixBlockType
protected

◆ ScalarVectorBlockType

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Dune::FieldVector<double, 1> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::ScalarVectorBlockType
protected

◆ TransportModel

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Opm::SinglePointUpwindTwoPhase<TwophaseFluid> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::TransportModel
protected

◆ TransportSolver

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Opm::ImplicitTransport<TransportModel , JacSys , Opm::MaxNormDune , Opm::ImplicitTransportDefault::VectorNegater, Opm::ImplicitTransportDefault::VectorZero , Opm::ImplicitTransportDefault::MatrixZero , Opm::ImplicitTransportDefault::VectorAssign > Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::TransportSolver
protected

◆ TwophaseFluid

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
typedef Opm::TwophaseFluidWrapper Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::TwophaseFluid
protected

Constructor & Destructor Documentation

◆ EulerUpstreamImplicit() [1/2]

template<class GI , class RP , class BC >
Opm::EulerUpstreamImplicit< GI, RP, BC >::EulerUpstreamImplicit
inline

◆ EulerUpstreamImplicit() [2/2]

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::EulerUpstreamImplicit ( const GridInterface &  grid,
const ReservoirProperties &  resprop,
const BoundaryConditions &  boundary 
)
Parameters

Member Function Documentation

◆ checkAndPossiblyClampSat()

template<class GI , class RP , class BC >
void Opm::EulerUpstreamImplicit< GI, RP, BC >::checkAndPossiblyClampSat ( std::vector< double > &  s) const
inlineprotected

◆ display()

template<class GI , class RP , class BC >
void Opm::EulerUpstreamImplicit< GI, RP, BC >::display
inline
Parameters

◆ init() [1/2]

template<class GI , class RP , class BC >
void Opm::EulerUpstreamImplicit< GI, RP, BC >::init ( const Opm::parameter::ParameterGroup &  param)
inline
Parameters

◆ init() [2/2]

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
void Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::init ( const Opm::parameter::ParameterGroup &  param,
const GridInterface &  grid,
const ReservoirProperties &  resprop,
const BoundaryConditions &  boundary 
)
Parameters

◆ initObj()

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
void Opm::EulerUpstreamImplicit< GI, RP, BC >::initObj ( const GridInterface &  grid,
const ReservoirProperties &  resprop,
const BoundaryConditions &  boundary 
)
inline
Parameters

References Opm::TwophaseFluidWrapper::mobility().

◆ smallTimeStep()

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
template<class PressureSolution >
void Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::smallTimeStep ( std::vector< double > &  saturation,
const double  time,
const typename GridInterface::Vector &  gravity,
const PressureSolution &  pressure_sol,
const Opm::SparseVector< double > &  injection_rates 
) const
protected

◆ transportSolve() [1/2]

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
template<class PressureSolution >
bool Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::transportSolve ( std::vector< double > &  saturation,
const double  time,
const typename GI::Vector &  gravity,
const PressureSolution &  pressure_sol,
const Opm::SparseVector< double > &  injection_rates 
) const

◆ transportSolve() [2/2]

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
template<class PressureSolution >
bool Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::transportSolve ( std::vector< double > &  saturation,
const double  time,
const typename GridInterface::Vector &  gravity,
const PressureSolution &  pressure_sol,
const Opm::SparseVector< double > &  injection_rates 
) const

Solve transport equation, evolving.

Parameters
saturationfor
timeseconds.
Template Parameters

param

Member Data Documentation

◆ check_sat_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
bool Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::check_sat_
protected

◆ clamp_sat_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
bool Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::clamp_sat_
protected

◆ ctrl_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
Opm::ImplicitTransportDetails::NRControl Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::ctrl_
protected

◆ direclet_cells_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<int> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::direclet_cells_
protected

◆ direclet_hfaces_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<double> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::direclet_hfaces_
protected

◆ direclet_sat_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<double> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::direclet_sat_
protected

◆ htrans_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<double> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::htrans_
protected

◆ max_repeats_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
int Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::max_repeats_
protected

◆ mygrid_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
GridAdapter Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::mygrid_
protected

◆ myrp_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
ReservoirProperties Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::myrp_
protected

◆ periodic_cells_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<int> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::periodic_cells_
protected

◆ periodic_faces_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<int> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::periodic_faces_
protected

◆ periodic_hfaces_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<int> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::periodic_hfaces_
protected

◆ periodic_nbfaces_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<int> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::periodic_nbfaces_
protected

◆ porevol_

template<class GridInterface , class ReservoirProperties , class BoundaryConditions >
std::vector<double> Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::porevol_
protected

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