File bout++.cxx#
Defines
-
GLOBALORIGIN#
-
BOUT_NO_USING_NAMESPACE_BOUTGLOBALS#
-
BUILDFLAG1_(x)#
-
BUILDFLAG(x)#
-
INDIRECT1_BOUTMAIN(a)#
-
INDIRECT0_BOUTMAIN(...)#
-
STRINGIFY(a)#
Functions
-
void bout_signal_handler(int sig)#
Signal handler - handles all signals.
-
char get_spin()#
Produce a spinning bar character.
-
int BoutInitialise(int &argc, char **&argv)#
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 BoutFinalise(bool write_settings)#
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_settingsis true, output the settings, showing which options were used. This overwrites the file written during initialisation (BOUT.settings by default)
Variables
-
static constexpr auto DEFAULT_DIR = "data"#
-
int iteration = {0}#
-
bool user_requested_exit = false#
-
namespace bout
Provides access to the Hypre library, handling initialisation and finalisation.
Usage
#include <bout/hyprelib.hxx>
class MyClass { public:
private: HypreLib lib; };
This will then automatically initialise Hypre the first time an object is created, and finalise it when the last object is destroyed.
Copyright 2012 B.D.Dudson, S.Farley, M.V.Umansky, X.Q.Xu
Contact: Ben Dudson, bd512@york.ac.uk
This file is part of BOUT++.
BOUT++ is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
BOUT++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with BOUT++. If not, see http://www.gnu.org/licenses/.
Explicit inversion of a 3x3 matrix
aIf the matrix is singular (ill conditioned), the determinant is return. Otherwise, an empty
std::optionalis returnSNB model
-
namespace experimental#
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
-
void defaultSignalHandler(int sig)#
The default BOUT++ signal handler: throw an exception with an appropriate message
-
CommandLineArgs 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_diris 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 =
MYPEto 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), intorunsection ofoptions
-
void setRunFinishInfo(Options &options)#
Set the current time (as
finished) intorunsection ofoptions
-
void writeSettingsFile(Options &options, const std::string &data_dir, const std::string &settings_file)#
Write
optionstosettings_filein directorydata_dir.
-
template<class Factory>
void printAvailableImplementations()# Print all of the available implementations for a given
Factory
-
void setupSignalHandler(SignalHandler signal_handler)#
-
namespace experimental#