opm-simulators
Opm::NonlinearSystem< TypeTag > Class Template Reference
Inheritance diagram for Opm::NonlinearSystem< TypeTag >:
Opm::NonlinearSystemBlackOilReservoir< TypeTag > Opm::NonlinearSystemCompositional< TypeTag > Opm::NonlinearSystemBlackOilReservoirTPSA< TypeTag >

Public Types

using Simulator = GetPropType< TypeTag, Properties::Simulator >
 
using Grid = GetPropType< TypeTag, Properties::Grid >
 
using FluidSystem = GetPropType< TypeTag, Properties::FluidSystem >
 
using Indices = GetPropType< TypeTag, Properties::Indices >
 
using Scalar = GetPropType< TypeTag, Properties::Scalar >
 
using GlobalEqVector = GetPropType< TypeTag, Properties::GlobalEqVector >
 
using ModelParameters = BlackoilModelParameters< Scalar >
 
using WellModel = GetPropType< TypeTag, Properties::WellModel >
 
using ComponentName = ::Opm::ComponentName< FluidSystem, Indices >
 

Public Member Functions

bool isParallel () const
 
const Simulator & simulator () const
 
Simulator & simulator ()
 
bool terminalOutputEnabled () const
 
int numPhases () const
 
const SimulatorReportSinglefailureReport () const
 
const std::vector< StepReport > & stepReports () const
 
const ComponentNamecompNames () const
 
const ModelParametersparam () const
 
WellModel & wellModel ()
 
const WellModel & wellModel () const
 
void beginReportStep ()
 
void endReportStep ()
 
SimulatorReportSingle assembleReservoir (const SimulatorTimerInterface &timer)
 
void updateTUNING (const Tuning &tuning)
 
void updateTUNINGDP (const TuningDp &tuning_dp)
 
void updateSolution (const GlobalEqVector &dx)
 
template<class LogFailure >
void addReservoirConvergenceMetrics (ConvergenceReport &report, const int componentIdx, const std::string_view componentName, const std::span< const Scalar > residuals, const std::span< const ConvergenceReport::ReservoirFailure::Type > types, const std::span< const Scalar > tolerances, const Scalar maxResidualAllowed, LogFailure &&logFailure) const
 

Protected Member Functions

 NonlinearSystem (Simulator &simulator, const ModelParameters &param, WellModel &wellModel, const bool terminal_output)
 
virtual void initialLinearization (SimulatorReportSingle &report, int minIter, int maxIter, const SimulatorTimerInterface &timer)
 
virtual bool shouldStoreSolutionUpdate () const
 
virtual void prepareSolutionUpdate ()
 
virtual void storeSolutionUpdate (const GlobalEqVector &)
 
SimulatorReportSingle prepareStep (const SimulatorTimerInterface &timer)
 
template<class WellModelType >
SimulatorReportSingle assembleReservoir (WellModelType &wellModel)
 
template<class ModelParametersType >
void applyTUNING (ModelParametersType &param, const Tuning &tuning)
 
template<class ModelParametersType >
void applyTUNINGDP (ModelParametersType &param, const TuningDp &tuning_dp)
 
template<class ValueType >
std::tuple< ValueType, ValueType > convergenceReduction (Parallel::Communication comm, const ValueType primaryVolumeLocal, const ValueType secondaryVolumeLocal, std::vector< ValueType > &sumValues, std::vector< ValueType > &maxValues, std::vector< ValueType > &averagedValues)
 
void popLastStepReport ()
 

Protected Attributes

Simulator & simulator_
 
const Grid & grid_
 
bool terminal_output_
 
ModelParameters param_
 
WellModel & well_model_
 
SimulatorReportSingle failureReport_
 
std::vector< StepReportconvergence_reports_
 
ComponentName compNames_ {}
 
std::vector< std::vector< Scalar > > residual_norms_history_
 
Scalar current_relaxation_
 
GlobalEqVector dx_old_
 

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