opm-upscaling
Loading...
Searching...
No Matches
Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions > Class Template Reference

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

#include <EulerUpstreamImplicit.hpp>

Public Member Functions

 EulerUpstreamImplicit ()
 EulerUpstreamImplicit (const GridInterface &grid, const ReservoirProperties &resprop, const BoundaryConditions &boundary)
void init (const Opm::ParameterGroup &param)
void init (const Opm::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.
template<class PressureSolution>
bool transportSolve (std::vector< double > &saturation, const double time, const typename GI::Vector &, const PressureSolution &pressure_sol, const Opm::SparseVector< double > &) const

Protected Types

typedef Opm::TwophaseFluidWrapper TwophaseFluid
typedef Opm::SinglePointUpwindTwoPhase< TwophaseFluid > TransportModel
typedef Dune::FieldVector< double, 1 > ScalarVectorBlockType
typedef Dune::FieldMatrix< double, 1, 1 > ScalarMatrixBlockType
typedef Dune::BlockVector< ScalarVectorBlockType > ScalarBlockVector
typedef Dune::BCRSMatrix< ScalarMatrixBlockType > ScalarBCRSMatrix
typedef Opm::ImplicitTransportDefault::NewtonVectorCollection< ScalarBlockVector > NVecColl
typedef Opm::ImplicitTransportDefault::JacobianSystem< ScalarBCRSMatrix, NVecColl > JacSys
typedef Opm::LinearSolverBICGSTAB LinearSolver
typedef Opm::ImplicitTransport< TransportModel, JacSys, Opm::MaxNormDune, Opm::ImplicitTransportDefault::VectorNegater, Opm::ImplicitTransportDefault::VectorZero, Opm::ImplicitTransportDefault::MatrixZero, Opm::ImplicitTransportDefault::VectorAssignTransportSolver

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

Constructor & Destructor Documentation

◆ EulerUpstreamImplicit() [1/2]

template<class GI, class RP, class BC>
Opm::EulerUpstreamImplicit< GI, RP, BC >::EulerUpstreamImplicit ( )
inline
Todo
Doc me

◆ 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 )
Todo
Doc me
Parameters

Member Function Documentation

◆ display()

template<class GI, class RP, class BC>
void Opm::EulerUpstreamImplicit< GI, RP, BC >::display ( )
inline
Todo
Doc me
Parameters

◆ init() [1/2]

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

◆ init() [2/2]

template<class GridInterface, class ReservoirProperties, class BoundaryConditions>
void Opm::EulerUpstreamImplicit< GridInterface, ReservoirProperties, BoundaryConditions >::init ( const Opm::ParameterGroup & param,
const GridInterface & grid,
const ReservoirProperties & resprop,
const BoundaryConditions & boundary )
Todo
Doc me
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
Todo
Doc me
Parameters

◆ transportSolve()

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.

Parameters
saturationthe evolving saturation
timeTime in seconds.
gravityGravity
pressure_solPressure solution
injection_ratesInjection ratees

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