Public Types | |
typedef WellInterface< TypeTag > | Base |
typedef Dune::FieldVector < Scalar, numWellEq > | VectorBlockWellType |
typedef Dune::BlockVector < VectorBlockWellType > | BVectorWell |
typedef Dune::FieldMatrix < Scalar, numWellEq, numWellEq > | DiagMatrixBlockWellType |
typedef Dune::BCRSMatrix < DiagMatrixBlockWellType > | DiagMatWell |
typedef Dune::FieldMatrix < Scalar, numWellEq, numEq > | OffDiagMatrixBlockWellType |
typedef Dune::BCRSMatrix < OffDiagMatrixBlockWellType > | OffDiagMatWell |
typedef DenseAd::Evaluation < double, numEq+numWellEq > | EvalWell |
typedef BlackoilModelParameters | ModelParameters |
typedef Ewoms::BlackOilPolymerModule < TypeTag > | PolymerModule |
typedef double | Scalar |
typedef Dune::BCRSMatrix < MatrixBlockType > | Mat |
typedef Dune::BlockVector < VectorBlockType > | BVector |
typedef DenseAd::Evaluation < double, numEq > | Eval |
Public Member Functions | |
StandardWell (const Well *well, const int time_step, const Wells *wells, const ModelParameters ¶m) | |
virtual void | init (const PhaseUsage *phase_usage_arg, const std::vector< bool > *active_arg, const std::vector< double > &depth_arg, const double gravity_arg, const int num_cells) |
virtual void | initPrimaryVariablesEvaluation () const |
virtual void | assembleWellEq (Simulator &ebosSimulator, const double dt, WellState &well_state, bool only_wells) |
virtual void | updateWellStateWithTarget (const int current, WellState &xw) const |
updating the well state based the control mode specified with current | |
virtual ConvergenceReport | getWellConvergence (const std::vector< double > &B_avg) const |
check whether the well equations get converged for this well | |
virtual void | apply (const BVector &x, BVector &Ax) const |
Ax = Ax - C D^-1 B x. | |
virtual void | apply (BVector &r) const |
r = r - C D^-1 Rw | |
virtual void | recoverWellSolutionAndUpdateWellState (const BVector &x, WellState &well_state) const |
using the solution x to recover the solution xw for wells and applying xw to update Well State | |
virtual void | computeWellPotentials (const Simulator &ebosSimulator, const WellState &well_state, std::vector< double > &well_potentials) |
computing the well potentials for group control | |
virtual void | updatePrimaryVariables (const WellState &well_state) const |
virtual void | solveEqAndUpdateWellState (WellState &well_state) |
virtual void | calculateExplicitQuantities (const Simulator &ebosSimulator, const WellState &well_state) |
Static Public Attributes | |
static const bool | gasoil = numEq == 2 && (BlackoilIndices::compositionSwitchIdx >= 0) |
static const int | XvarWell = 0 |
static const int | WFrac = gasoil? -1000: 1 |
static const int | GFrac = gasoil? 1: 2 |
static const int | SFrac = 3 |
static const int | numWellEq = GET_PROP_VALUE(TypeTag, EnablePolymer)? numEq-1 : numEq |
static const int | contiSolventEqIdx = BlackoilIndices::contiSolventEqIdx |
static const int | contiPolymerEqIdx = BlackoilIndices::contiPolymerEqIdx |
static const int | solventSaturationIdx = BlackoilIndices::solventSaturationIdx |
static const int | polymerConcentrationIdx = BlackoilIndices::polymerConcentrationIdx |
Protected Member Functions | |
EvalWell | getBhp () const |
EvalWell | getQs (const int comp_idx) const |
EvalWell | wellVolumeFractionScaled (const int phase) const |
EvalWell | wellVolumeFraction (const int phase) const |
EvalWell | wellSurfaceVolumeFraction (const int phase) const |
EvalWell | extendEval (const Eval &in) const |
bool | crossFlowAllowed (const Simulator &ebosSimulator) const |
void | recoverSolutionWell (const BVector &x, BVectorWell &xw) const |
void | updateWellState (const BVectorWell &dwells, WellState &well_state) const |
void | computePropertiesForWellConnectionPressures (const Simulator &ebosSimulator, const WellState &xw, std::vector< double > &b_perf, std::vector< double > &rsmax_perf, std::vector< double > &rvmax_perf, std::vector< double > &surf_dens_perf) const |
void | computeConnectionDensities (const std::vector< double > &perfComponentRates, const std::vector< double > &b_perf, const std::vector< double > &rsmax_perf, const std::vector< double > &rvmax_perf, const std::vector< double > &surf_dens_perf) |
void | computeConnectionPressureDelta () |
void | computeWellConnectionDensitesPressures (const WellState &xw, const std::vector< double > &b_perf, const std::vector< double > &rsmax_perf, const std::vector< double > &rvmax_perf, const std::vector< double > &surf_dens_perf) |
void | computeAccumWell () |
void | computeWellConnectionPressures (const Simulator &ebosSimulator, const WellState &xw) |
void | computePerfRate (const IntensiveQuantities &intQuants, const std::vector< EvalWell > &mob_perfcells_dense, const double Tw, const EvalWell &bhp, const double &cdp, const bool &allow_cf, std::vector< EvalWell > &cq_s) const |
void | computeWellRatesWithBhp (const Simulator &ebosSimulator, const EvalWell &bhp, std::vector< double > &well_flux) const |
std::vector< double > | computeWellPotentialWithTHP (const Simulator &ebosSimulator, const double initial_bhp, const std::vector< double > &initial_potential) const |
template<class ValueType > | |
ValueType | calculateBhpFromThp (const std::vector< ValueType > &rates, const int control_index) const |
double | calculateThpFromBhp (const std::vector< double > &rates, const int control_index, const double bhp) const |
void | getMobility (const Simulator &ebosSimulator, const int perf, std::vector< EvalWell > &mob) const |
double | scalingFactor (const int comp_idx) const |
Protected Attributes | |
std::vector< double > | perf_densities_ |
std::vector< double > | perf_pressure_diffs_ |
BVectorWell | resWell_ |
OffDiagMatWell | duneB_ |
OffDiagMatWell | duneC_ |
DiagMatWell | invDuneD_ |
BVectorWell | Bx_ |
BVectorWell | invDrw_ |
std::vector< double > | primary_variables_ |
std::vector< EvalWell > | primary_variables_evaluation_ |
std::vector< double > | F0_ |