A struct for returning timing data from a simulator to its caller. More...

#include <SimulatorReport.hpp>

Public Member Functions

bool operator== (const SimulatorReportSingle &) const
 
void operator+= (const SimulatorReportSingle &sr)
 Increment this report's times by those in sr. More...
 
void reportStep (std::ostream &os) const
 Print a report suitable for a single simulation step. More...
 
void reportFullyImplicit (std::ostream &os, const SimulatorReportSingle *failedReport=nullptr, bool performance_details=false) const
 
void reportNLDD (std::ostream &os, const SimulatorReportSingle *failedReport=nullptr) const
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 

Static Public Member Functions

static SimulatorReportSingle serializationTestObject ()
 

Public Attributes

double pressure_time = 0.0
 
double transport_time = 0.0
 
double total_time = 0.0
 
double solver_time = 0.0
 
double assemble_time = 0.0
 
double pre_post_time = 0.0
 
double assemble_time_well = 0.0
 
double linear_solve_setup_time = 0.0
 
double linear_solve_time = 0.0
 
double local_solve_time = 0.0
 
double update_time = 0.0
 
double output_write_time = 0.0
 
unsigned int total_well_iterations = 0
 
unsigned int total_linearizations = 0
 
unsigned int total_newton_iterations = 0
 
unsigned int total_linear_iterations = 0
 
unsigned int min_linear_iterations = std::numeric_limits<unsigned int>::max()
 
unsigned int max_linear_iterations = 0
 
unsigned int relaxed_cnv_acceptances = 0
 
bool converged = false
 
bool time_step_rejected = false
 
bool well_group_control_changed = false
 
int exit_status = EXIT_SUCCESS
 
double global_time = 0.0
 
double timestep_length = 0.0
 
int num_domains = 0
 
int num_wells = 0
 
int num_overlap_cells = 0
 
int num_owned_cells = 0
 
int converged_domains = 0
 
int unconverged_domains = 0
 
int accepted_unconverged_domains = 0
 
int skipped_domains = 0
 
double props_time = 0.0
 
double convergence_check_time = 0.0
 
double output_eval_time = 0.0
 
double tracer_solve_time = 0.0
 Part of pre_post_time used for solving the tracer equations. More...
 
double temperature_solve_time = 0.0
 
double output_disk_write_time = 0.0
 Time used by the actual (possibly asynchronous) output writes. More...
 
double linear_solve_apply_time = 0.0
 Part of linear_solve_time spent in the actual solver apply. More...
 
double precond_setup_time = 0.0
 
double precond_apply_time = 0.0
 
double well_solve_time = 0.0
 
double well_potential_solve_time = 0.0
 
double well_solve_assemble_time = 0.0
 
double well_solve_linear_solve_time = 0.0
 
double well_control_network_time = 0.0
 
double gaslift_time = 0.0
 Part of well_control_network_time used for gas lift optimization. More...
 
double well_facility_time = 0.0
 
double group_control_time = 0.0
 
double network_balance_time = 0.0
 Part of well_control_network_time used for balancing the network. More...
 
double control_well_solve_time = 0.0
 
unsigned int total_well_potential_iterations = 0
 
unsigned int total_network_iterations = 0
 

Detailed Description

A struct for returning timing data from a simulator to its caller.

Member Function Documentation

◆ operator+=()

void Opm::SimulatorReportSingle::operator+= ( const SimulatorReportSingle &  sr)

Increment this report's times by those in sr.

◆ operator==()

bool Opm::SimulatorReportSingle::operator== ( const SimulatorReportSingle &  ) const

◆ reportFullyImplicit()

void Opm::SimulatorReportSingle::reportFullyImplicit ( std::ostream &  os,
const SimulatorReportSingle *  failedReport = nullptr,
bool  performance_details = false 
) const

Print a report suitable for the end of a fully implicit case, leaving out the pressure/transport time. With performance_details, additional detailed timings are included.

◆ reportNLDD()

void Opm::SimulatorReportSingle::reportNLDD ( std::ostream &  os,
const SimulatorReportSingle *  failedReport = nullptr 
) const

◆ reportStep()

void Opm::SimulatorReportSingle::reportStep ( std::ostream &  os) const

Print a report suitable for a single simulation step.

◆ serializationTestObject()

static SimulatorReportSingle Opm::SimulatorReportSingle::serializationTestObject ( )
static

◆ serializeOp()

Member Data Documentation

◆ accepted_unconverged_domains

int Opm::SimulatorReportSingle::accepted_unconverged_domains = 0

Referenced by serializeOp().

◆ assemble_time

double Opm::SimulatorReportSingle::assemble_time = 0.0

◆ assemble_time_well

double Opm::SimulatorReportSingle::assemble_time_well = 0.0

Referenced by serializeOp().

◆ control_well_solve_time

double Opm::SimulatorReportSingle::control_well_solve_time = 0.0

Part of well_control_network_time used for the well solves triggered by control changes (prepareWellsBeforeAssembling).

Referenced by serializeOp().

◆ converged

◆ converged_domains

int Opm::SimulatorReportSingle::converged_domains = 0

Referenced by serializeOp().

◆ convergence_check_time

double Opm::SimulatorReportSingle::convergence_check_time = 0.0

Part of update_time used for the convergence checks (reservoir and wells).

Referenced by serializeOp().

◆ exit_status

int Opm::SimulatorReportSingle::exit_status = EXIT_SUCCESS

Referenced by serializeOp().

◆ gaslift_time

double Opm::SimulatorReportSingle::gaslift_time = 0.0

Part of well_control_network_time used for gas lift optimization.

Referenced by serializeOp().

◆ global_time

double Opm::SimulatorReportSingle::global_time = 0.0

◆ group_control_time

double Opm::SimulatorReportSingle::group_control_time = 0.0

Part of well_control_network_time used for updating and communicating the group data, checking the well controls and updating the guide rates.

Referenced by serializeOp().

◆ linear_solve_apply_time

double Opm::SimulatorReportSingle::linear_solve_apply_time = 0.0

Part of linear_solve_time spent in the actual solver apply.

Referenced by serializeOp().

◆ linear_solve_setup_time

◆ linear_solve_time

◆ local_solve_time

double Opm::SimulatorReportSingle::local_solve_time = 0.0

◆ max_linear_iterations

unsigned int Opm::SimulatorReportSingle::max_linear_iterations = 0

◆ min_linear_iterations

unsigned int Opm::SimulatorReportSingle::min_linear_iterations = std::numeric_limits<unsigned int>::max()

◆ network_balance_time

double Opm::SimulatorReportSingle::network_balance_time = 0.0

Part of well_control_network_time used for balancing the network.

Referenced by serializeOp().

◆ num_domains

int Opm::SimulatorReportSingle::num_domains = 0

◆ num_overlap_cells

int Opm::SimulatorReportSingle::num_overlap_cells = 0

◆ num_owned_cells

int Opm::SimulatorReportSingle::num_owned_cells = 0

◆ num_wells

int Opm::SimulatorReportSingle::num_wells = 0

◆ output_disk_write_time

double Opm::SimulatorReportSingle::output_disk_write_time = 0.0

Time used by the actual (possibly asynchronous) output writes.

Referenced by serializeOp().

◆ output_eval_time

double Opm::SimulatorReportSingle::output_eval_time = 0.0

Part of pre_post_time used for the extra evaluations related to output (endTimeStep: summary evaluation, actions etc.).

Referenced by serializeOp().

◆ output_write_time

double Opm::SimulatorReportSingle::output_write_time = 0.0

◆ pre_post_time

◆ precond_apply_time

double Opm::SimulatorReportSingle::precond_apply_time = 0.0

Part of linear_solve_apply_time used for applying the preconditioner.

Referenced by serializeOp().

◆ precond_setup_time

double Opm::SimulatorReportSingle::precond_setup_time = 0.0

Part of linear_solve_setup_time used for creating and updating the preconditioner.

Referenced by serializeOp().

◆ pressure_time

double Opm::SimulatorReportSingle::pressure_time = 0.0

Referenced by serializeOp().

◆ props_time

double Opm::SimulatorReportSingle::props_time = 0.0

Part of update_time used for evaluating properties (intensive quantities) after a solution update.

Referenced by serializeOp().

◆ relaxed_cnv_acceptances

unsigned int Opm::SimulatorReportSingle::relaxed_cnv_acceptances = 0

◆ skipped_domains

int Opm::SimulatorReportSingle::skipped_domains = 0

◆ solver_time

double Opm::SimulatorReportSingle::solver_time = 0.0

◆ temperature_solve_time

double Opm::SimulatorReportSingle::temperature_solve_time = 0.0

Part of pre_post_time used for the sequential implicit temperature solve.

Referenced by serializeOp().

◆ time_step_rejected

bool Opm::SimulatorReportSingle::time_step_rejected = false

◆ timestep_length

double Opm::SimulatorReportSingle::timestep_length = 0.0

◆ total_linear_iterations

◆ total_linearizations

unsigned int Opm::SimulatorReportSingle::total_linearizations = 0

◆ total_network_iterations

unsigned int Opm::SimulatorReportSingle::total_network_iterations = 0

Referenced by serializeOp().

◆ total_newton_iterations

◆ total_time

double Opm::SimulatorReportSingle::total_time = 0.0

◆ total_well_iterations

unsigned int Opm::SimulatorReportSingle::total_well_iterations = 0

Referenced by serializeOp().

◆ total_well_potential_iterations

unsigned int Opm::SimulatorReportSingle::total_well_potential_iterations = 0

Referenced by serializeOp().

◆ tracer_solve_time

double Opm::SimulatorReportSingle::tracer_solve_time = 0.0

Part of pre_post_time used for solving the tracer equations.

Referenced by serializeOp().

◆ transport_time

double Opm::SimulatorReportSingle::transport_time = 0.0

Referenced by serializeOp().

◆ unconverged_domains

int Opm::SimulatorReportSingle::unconverged_domains = 0

Referenced by serializeOp().

◆ update_time

◆ well_control_network_time

double Opm::SimulatorReportSingle::well_control_network_time = 0.0

Part of assemble_time_well used for updating well controls, group targets and balancing the network.

Referenced by serializeOp().

◆ well_facility_time

double Opm::SimulatorReportSingle::well_facility_time = 0.0

Part of assemble_time_well used for the facility calculations, i.e. the time step preparation of the wells (including the standalone well solves) and the control/network updates.

Referenced by serializeOp().

◆ well_group_control_changed

bool Opm::SimulatorReportSingle::well_group_control_changed = false

Referenced by serializeOp().

◆ well_potential_solve_time

double Opm::SimulatorReportSingle::well_potential_solve_time = 0.0

Referenced by serializeOp().

◆ well_solve_assemble_time

double Opm::SimulatorReportSingle::well_solve_assemble_time = 0.0

Referenced by serializeOp().

◆ well_solve_linear_solve_time

double Opm::SimulatorReportSingle::well_solve_linear_solve_time = 0.0

Referenced by serializeOp().

◆ well_solve_time

double Opm::SimulatorReportSingle::well_solve_time = 0.0

Statistics for the separate (standalone) well solves, i.e. the local solves of the well equations done outside the global linearizations (prepareTimeStep, well testing) and the well potential calculations.

Referenced by serializeOp().


The documentation for this struct was generated from the following file: