Flow123d  3.9.0-9663d1cde
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ApplicationBase Class Referenceabstract

#include <application_base.hh>

Inheritance diagram for ApplicationBase:
Inheritance graph
[legend]
Collaboration diagram for ApplicationBase:
Collaboration graph
[legend]

Public Member Functions

void init (int argc, char **argv)
 
virtual void run ()=0
 

Static Public Attributes

static const int exit_success = 0
 Return codes of application. More...
 
static const int exit_failure = 1
 
static const int exit_output = 0
 
static bool petsc_initialized = false
 
static bool permon_initialized = false
 

Protected Member Functions

 ApplicationBase ()
 
virtual ~ApplicationBase ()
 Destructor. More...
 
void system_init (MPI_Comm comm, const string &log_filename)
 
virtual void parse_cmd_line (const int argc, char **argv)=0
 
void petsc_initialize (int argc, char **argv)
 
int petcs_finalize ()
 
void permon_initialize (int argc, char **argv)
 
int permon_finalize ()
 

Protected Attributes

string log_filename_
 
string petsc_redirect_file_ =""
 
bool signal_handler_off_
 Turn off signal handling useful to debug with valgrind. More...
 

Static Protected Attributes

static FILE * petsc_output_ =NULL
 File handler for redirecting PETSc output. More...
 

Detailed Description

Base virtual class of Flow123D application.

Contains base methods of application for initialization, run and finalization which is used in derived class.

Usage:

class Application : public ApplicationBase {
public:
Application(int argc, char ** argv); // constructor
protected:
virtual void run(); // implementation of pure virtual method
virtual void after_run(); // overriding of parent method
}

Definition at line 65 of file application_base.hh.

Constructor & Destructor Documentation

◆ ApplicationBase()

ApplicationBase::ApplicationBase ( )
protected

Constructor

Construction is done in init method. We need to call virtual methods during construction.

Definition at line 75 of file application_base.cc.

◆ ~ApplicationBase()

ApplicationBase::~ApplicationBase ( )
protectedvirtual

Destructor.

Definition at line 231 of file application_base.cc.

Member Function Documentation

◆ init()

void ApplicationBase::init ( int  argc,
char **  argv 
)

Contains basic structure of application (initialization, run and finalization). Method is call after constructor and allows to call virtual methods.

Definition at line 214 of file application_base.cc.

Here is the caller graph for this function:

◆ parse_cmd_line()

virtual void ApplicationBase::parse_cmd_line ( const int  argc,
char **  argv 
)
protectedpure virtual

Parse command line parameters before Flow123D initialization.

Method must be implemented in derived class.

Implemented in Application.

Here is the caller graph for this function:

◆ permon_finalize()

int ApplicationBase::permon_finalize ( )
protected

Finalize PERMON. If finalization failed return nonzero value.

Definition at line 196 of file application_base.cc.

Here is the caller graph for this function:

◆ permon_initialize()

void ApplicationBase::permon_initialize ( int  argc,
char **  argv 
)
protected

Initialize PERMON.

Definition at line 190 of file application_base.cc.

Here is the caller graph for this function:

◆ petcs_finalize()

int ApplicationBase::petcs_finalize ( )
protected

Finalize PETSC. If finalization failed return nonzero value.

Definition at line 170 of file application_base.cc.

Here is the caller graph for this function:

◆ petsc_initialize()

void ApplicationBase::petsc_initialize ( int  argc,
char **  argv 
)
protected

Implement printf function for PETSc with support for redirecting. Initialize PETSC.

Definition at line 145 of file application_base.cc.

Here is the caller graph for this function:

◆ run()

virtual void ApplicationBase::run ( )
pure virtual

Run application.

Method must be implemented in derived class.

Implemented in Application.

◆ system_init()

void ApplicationBase::system_init ( MPI_Comm  comm,
const string &  log_filename 
)
protected

Read system parameters, open log.

Definition at line 84 of file application_base.cc.

Here is the caller graph for this function:

Member Data Documentation

◆ exit_failure

const int ApplicationBase::exit_failure = 1
static

Definition at line 83 of file application_base.hh.

◆ exit_output

const int ApplicationBase::exit_output = 0
static

Definition at line 84 of file application_base.hh.

◆ exit_success

const int ApplicationBase::exit_success = 0
static

Return codes of application.

Definition at line 82 of file application_base.hh.

◆ log_filename_

string ApplicationBase::log_filename_
protected

Log file name argument - passed to system_init; "" means default, "\n" means no logging TODO: move whole system_init into Application, use singleton for some runtime global options for the Flow123d library.

Definition at line 145 of file application_base.hh.

◆ permon_initialized

bool ApplicationBase::permon_initialized = false
static

Definition at line 87 of file application_base.hh.

◆ petsc_initialized

bool ApplicationBase::petsc_initialized = false
static

Definition at line 86 of file application_base.hh.

◆ petsc_output_

FILE * ApplicationBase::petsc_output_ =NULL
staticprotected

File handler for redirecting PETSc output.

Definition at line 152 of file application_base.hh.

◆ petsc_redirect_file_

string ApplicationBase::petsc_redirect_file_ =""
protected

Optional file name for output of PETSc parameters. Has to be set in parse_cmd_line()

Definition at line 149 of file application_base.hh.

◆ signal_handler_off_

bool ApplicationBase::signal_handler_off_
protected

Turn off signal handling useful to debug with valgrind.

Definition at line 155 of file application_base.hh.


The documentation for this class was generated from the following files:
Application
Definition: main.h:35
ApplicationBase::run
virtual void run()=0
ApplicationBase
Definition: application_base.hh:65