File bout.hxx¶
Functions
-
int
BoutInitialise
(int &argc, char **&argv) BOUT++ initialisation. This function must be called first, passing command-line arguments.
This will call MPI_Initialize, and if BOUT++ has been configured with external libraries such as PETSc then these will be initialised as well.
Example
A minimal BOUT++ program consists of:
int main(int argc, char** argv) { BoutInitialise(argc, argv); BoutFinalise(); }
Usually this function is called in a standard main() function, either by including boutmain.hxx or by including bout/physicsmodel.hxx and using the BOUTMAIN macro.
Initialise BOUT++
Inputs
The command-line arguments argc and argv are passed by reference, and pointers to these will be stored in various places in BOUT++.
Outputs
Any non-zero return value should halt the simulation. If the return value is less than zero, the exit status from BOUT++ is 0, otherwise it is the return value of BoutInitialise.
-
int
bout_run
(Solver *solver, rhsfunc physics_run) Run the given solver. This function is only used for old-style physics models with standalone C functions The main() function in boutmain.hxx calls this function to set up the RHS function and add bout_monitor.
-
int
BoutFinalise
(bool write_settings = true) BOUT++ finalisation. This should be called at the end of the program.
Frees memory, flushes buffers, and closes files. If BOUT++ initialised MPI or external libraries, then these are also finalised.
If
write_settings
is true, output the settings, showing which options were used. This overwrites the file written during initialisation (BOUT.settings by default)
-
class
BoutMonitor
: public Monitor¶ - #include <bout.hxx>
Monitor class for output. Called by the solver every output timestep.
This is added to the solver in bout_run (for C-style models) or in bout/physicsmodel.hxx
Private Functions
Private Members
-
RunMetrics
run_data
¶
-
RunMetrics
-
namespace
bout
SNB model
-
namespace
experimental
¶ Typedefs
-
using
SignalHandler
= void (*)(int)¶ Function type for handling signals.
Functions
-
void
setupSignalHandler
(SignalHandler signal_handler)¶ Set a signal handler for user-requested clean exit, and (optionally) segmentation faults and floating point errors
- For segmentation faults, compile with
--enable-signal
. - For floating point errors, compile with
--enable-sigfpe
- For segmentation faults, compile with
-
void
defaultSignalHandler
(int sig)¶ The default BOUT++ signal handler: throw an exception with an appropriate message
-
auto
parseCommandLineArgs
(int argc, char **argv)¶ Parse the “fixed” command line arguments, like help and -d.
-
void
checkDataDirectoryIsAccessible
(const std::string &data_dir)¶ Throw an exception if
data_dir
is either not a directory or not accessible. We do not check whether we can write, as it is sufficient that the files we need are writeable
-
void
setupOutput
(const std::string &data_dir, const std::string &log_file, int verbosity, int MYPE = 0)¶ Set up the output: open the log file for each processor, enable or disable the default outputs based on
verbosity
, disable writing to stdout forMYPE
!= 0
-
void
savePIDtoFile
(const std::string &data_dir, int MYPE)¶ Save the process ID for processor N =
MYPE
to file “.BOUT.pid.N” indata_dir
, so it can be shut down by user signalThrows if it was not possible to create the file
-
void
printStartupHeader
(int MYPE, int NPES)¶ Print the initial header.
-
void
printCompileTimeOptions
()¶ Print the compile-time options.
-
void
printCommandLineArguments
(const std::vector<std::string> &original_argv)¶ Print the arguments given on the command line.
-
bool
setupBoutLogColor
(bool color_output, int MYPE)¶ Setup the pipe etc and run stdout through bout-log-color. Return true if it was successful
-
void
setRunStartInfo
(Options &options)¶ Set BOUT++ version information, along with current time (as
started
), intorun
section ofoptions
-
void
setRunFinishInfo
(Options &options)¶ Set the current time (as
finished
) intorun
section ofoptions
-
struct
CommandLineArgs
¶ - #include <bout.hxx>
Results of parsing the command line arguments.
Public Members
-
int
verbosity
= {4}¶
-
bool
color_output
= {false}¶
-
std::string
data_dir
= {"data"}¶ Directory for data input/output.
-
std::string
opt_file
= {"BOUT.inp"}¶ Filename for the options file.
-
std::string
set_file
= {"BOUT.settings"}¶ Filename for the options file.
-
std::string
log_file
= {"BOUT.log"}¶ File name for the log file
-
std::vector<std::string>
original_argv
¶ The original set of command line arguments.
-
int
-
using
-
namespace