opm-simulators
Opm::CompWell< TypeTag > Class Template Reference
Inheritance diagram for Opm::CompWell< TypeTag >:
Opm::CompWellInterface< TypeTag >

Classes

struct  SurfaceConditons
 

Public Types

using Base = CompWellInterface< TypeTag >
 
using Scalar = GetPropType< TypeTag, Properties::Scalar >
 
using Simulator = GetPropType< TypeTag, Properties::Simulator >
 
using Indices = GetPropType< TypeTag, Properties::Indices >
 
using FluidSystem = GetPropType< TypeTag, Properties::FluidSystem >
 
using PrimaryVariables = CompWellPrimaryVariables< FluidSystem, Indices >
 
using SparseMatrixAdapter = GetPropType< TypeTag, Properties::SparseMatrixAdapter >
 
using WellEquations = CompWellEquations< Scalar, PrimaryVariables::numWellEq, Indices::numEq >
 
using EvalWell = typename PrimaryVariables::EvalWell
 
using BVectorWell = typename WellEquations::BVectorWell
 
using VectorBlockType = Dune::FieldVector< Scalar, Indices::numEq >
 
using BVector = Dune::BlockVector< VectorBlockType >
 
using SingleWellState = typename Base::SingleWellState
 
using CompConnectionData = PerforationData< Scalar >
 
template<typename T >
using FluidState = CompositionalFluidState< T, FluidSystem >
 
- Public Types inherited from Opm::CompWellInterface< TypeTag >
using Scalar = GetPropType< TypeTag, Properties::Scalar >
 
using Simulator = GetPropType< TypeTag, Properties::Simulator >
 
using Indices = GetPropType< TypeTag, Properties::Indices >
 
using FluidSystem = GetPropType< TypeTag, Properties::FluidSystem >
 
using SparseMatrixAdapter = GetPropType< TypeTag, Properties::SparseMatrixAdapter >
 
using RateVector = GetPropType< TypeTag, Properties::RateVector >
 
using VectorBlockType = Dune::FieldVector< Scalar, Indices::numEq >
 
using BVector = Dune::BlockVector< VectorBlockType >
 
using CompConnectionData = PerforationData< Scalar >
 
using SingleWellState = SingleCompWellState< FluidSystem >
 

Public Member Functions

 CompWell (const Well &well, int index_of_well, const std::vector< CompConnectionData > &well_connection_data)
 
void init () override
 
void calculateExplicitQuantities (const Simulator &simulator, const SingleWellState &well_state) override
 
void updatePrimaryVariables (const Simulator &simulator, const SingleWellState &well_state) override
 
void updateSecondaryQuantities (const Simulator &simulator)
 
void assembleWellEq (const Simulator &simulator, const SingleWellState &well_state, const double dt)
 
bool iterateWellEq (const Simulator &simulator, const Scalar dt, SingleWellState &well_state) override
 
void solveEqAndUpdateWellState (SingleWellState &well_state)
 
void apply (BVector &r) const override
 
void recoverWellSolutionAndUpdateWellState (const BVector &x, SingleWellState &well_state) override
 
bool getConvergence () const override
 
void addWellContributions (SparseMatrixAdapter &) const override
 
- Public Member Functions inherited from Opm::CompWellInterface< TypeTag >
 CompWellInterface (const Well &well, const int index_of_well, const std::vector< CompConnectionData > &well_connection_data)
 
const std::string & name () const
 
virtual void calculateExplicitQuantities (const Simulator &simulator, const SingleWellState &well_state)=0
 
virtual void updatePrimaryVariables (const Simulator &simulator, const SingleWellState &well_state)=0
 
virtual bool iterateWellEq (const Simulator &simulator, const Scalar dt, SingleWellState &well_state)=0
 
void addCellRates (RateVector &rates, unsigned cellIdx) const
 
const std::vector< std::size_t > & cells () const
 
virtual void recoverWellSolutionAndUpdateWellState (const BVector &x, SingleWellState &well_state)=0
 using the solution x to recover the solution xw for wells and applying xw to update Well State
 

Static Public Attributes

static constexpr unsigned num_comp = FluidSystem::numComponents
 

Additional Inherited Members

- Protected Attributes inherited from Opm::CompWellInterface< TypeTag >
const Well & well_ecl_
 
int index_of_well_ {-1}
 
int number_of_connection_ {}
 
Scalar reference_depth_ {}
 
std::vector< RateVector > connectionRates_
 
std::vector< std::size_t > well_cells_
 
std::vector< Scalar > well_index_
 
std::vector< int > saturation_table_number_
 

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