diff --git a/LICENSE.MIT b/LICENSE.MIT new file mode 100644 index 0000000000..14e2e075df --- /dev/null +++ b/LICENSE.MIT @@ -0,0 +1,19 @@ +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/include/bout/adios_object.hxx b/include/bout/adios_object.hxx index 9d2f545b46..f3cd2d5d0a 100755 --- a/include/bout/adios_object.hxx +++ b/include/bout/adios_object.hxx @@ -1,4 +1,4 @@ -/*!************************************************************************ +/*!\file******************************************************************* * Provides access to the ADIOS library, handling initialisation and * finalisation. * diff --git a/include/bout/assert.hxx b/include/bout/assert.hxx index 653c44ed42..af7caf4d9d 100644 --- a/include/bout/assert.hxx +++ b/include/bout/assert.hxx @@ -1,4 +1,4 @@ -/*! +/*!\file * Defines a macro ASSERT which throws a BoutException if a given * condition is false. Whether the assertion is tested depends on * the checking level, so assetions can be removed for optimised runs. diff --git a/include/bout/bout.hxx b/include/bout/bout.hxx index d929a19c2f..f7b63a88c6 100644 --- a/include/bout/bout.hxx +++ b/include/bout/bout.hxx @@ -34,6 +34,7 @@ #ifndef BOUT_H #define BOUT_H +//NOLINTBEGIN(unused-includes) #include "bout/build_config.hxx" #include "bout/boutcomm.hxx" @@ -53,6 +54,7 @@ #include "bout/vector3d.hxx" #include "bout/version.hxx" #include "bout/where.hxx" +//NOLINTEND(unused-includes) // BOUT++ main functions @@ -79,6 +81,13 @@ * either by including boutmain.hxx or by including bout/physicsmodel.hxx * and using the BOUTMAIN macro. * + * 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 BoutInitialise(int& argc, char**& argv); diff --git a/include/bout/dcomplex.hxx b/include/bout/dcomplex.hxx index 75bc9d26ff..556f1e72bb 100644 --- a/include/bout/dcomplex.hxx +++ b/include/bout/dcomplex.hxx @@ -37,7 +37,9 @@ using dcomplex = std::complex; -const dcomplex Im(0, 1); // 1i +/// Imaginary unit, ``1i`` +//NOLINTNEXTLINE(readability-identifier-length) +constexpr dcomplex Im{0, 1}; /// Complex type for passing data to/from FORTRAN struct fcmplx { diff --git a/include/bout/difops.hxx b/include/bout/difops.hxx index 71053d454a..e891dadb60 100644 --- a/include/bout/difops.hxx +++ b/include/bout/difops.hxx @@ -148,9 +148,9 @@ inline Field3D Div_par_flux(const Field3D& v, const Field3D& f, CELL_LOC outloc, } /*! - * second parallel derivative + * Second parallel derivative: * \f[ - * (\mathbf{b} dot \nabla)(\mathbf{b} dot \nabla) + * (\mathbf{b} \cdot \nabla)(\mathbf{b} \cdot \nabla) * \f] * * Note: For parallel Laplacian use LaplacePar diff --git a/include/bout/field.hxx b/include/bout/field.hxx index c0693ec0fb..2a6e31b113 100644 --- a/include/bout/field.hxx +++ b/include/bout/field.hxx @@ -565,7 +565,7 @@ FIELD_FUNC(exp, ::exp) /// Natural logarithm of \p f over region \p rgn, inverse of /// exponential /// -/// \f$\ln(\exp(f)) = f\f$ +/// \f[\ln(\exp(f)) = f\f] /// /// This loops over the entire domain, including guard/boundary cells by /// default (can be changed using the rgn argument) diff --git a/include/bout/field_accessor.hxx b/include/bout/field_accessor.hxx index 69b58da979..f942f38a11 100644 --- a/include/bout/field_accessor.hxx +++ b/include/bout/field_accessor.hxx @@ -1,7 +1,8 @@ +/// \file +/// /// FieldAccessor /// /// Provides quick but unsafe access to field and coordinate system data -/// #pragma once #ifndef FIELD_ACCESSOR_H__ @@ -119,9 +120,9 @@ using Field2DAccessor = FieldAccessor; /// /// Usage: /// -/// ddt(fa)[i] = +/// ddt(fa)[i] = /* expression */ /// -/// where fa is a FieldAccessor, and i is an int +/// where ``fa`` is a FieldAccessor, and ``i`` is an int /// template BOUT_HOST_DEVICE inline BoutRealArray& ddt(const FieldAccessor& fa) { diff --git a/include/bout/fv_ops.hxx b/include/bout/fv_ops.hxx index 94007a57a2..0e0d78fda5 100644 --- a/include/bout/fv_ops.hxx +++ b/include/bout/fv_ops.hxx @@ -13,9 +13,10 @@ #include namespace FV { -/*! - * Div ( a Grad_perp(f) ) -- ∇⊥ ( a ⋅ ∇⊥ f) -- Vorticity - */ +/// Vorticity: +/// \f[ +/// \nabla_\perp (a \cdot \nabla_\perp(f)) +/// \f] Field3D Div_a_Grad_perp(const Field3D& a, const Field3D& x); [[deprecated("Please use Div_a_Grad_perp instead")]] inline Field3D @@ -23,50 +24,55 @@ Div_a_Laplace_perp(const Field3D& a, const Field3D& x) { return Div_a_Grad_perp(a, x); } -/*! - * Divergence of a parallel diffusion Div( k * Grad_par(f) ) - */ +/// Divergence of a parallel diffusion +/// \f[ +/// \nabla_\parallel(k \cdot \nabla_\parallel(f) ) +/// \f] const Field3D Div_par_K_Grad_par(const Field3D& k, const Field3D& f, bool bndry_flux = true); -/*! - * 4th-order derivative in Y, using derivatives - * on cell boundaries. - * - * A one-sided 3rd-order derivative, given a value - * at a boundary is: - * - * d3f/dx3 ~= 16/5 f_b - 6 f_0 + 4 f_1 - 6/5 f_2 - * - * where f_b is the value on the boundary; f_0 is the cell - * to the left of the boundary; f_1 to the left of f_0 and f_2 - * to the left of f_1 - * - * f_2 | f_1 | f_0 | - * f_b - * - * NB: Uses to/from FieldAligned coordinates - * - * No fluxes through domain boundaries - */ +/// 4th-order derivative in Y, using derivatives +/// on cell boundaries. +/// +/// A one-sided 3rd-order derivative, given a value +/// at a boundary is: +/// +/// \f[ +/// \frac{d^3f}{dx^3} \simeq \tfrac{16}{5} f_b - 6 f_0 + 4 f_1 - \tfrac{6}{5} f_2 +/// \f] +/// +/// where: +/// +/// - \f$f_b\f$ is the value on the boundary, +/// - \f$f_0\f$ is the cell to the left of the boundary, +/// - \f$f_1\f$ to the left of \f$f_0\f$, and +/// - \f$f_2\f$ to the left of f_1: +/// +/// .. code:: text +/// f_2 | f_1 | f_0 | +/// f_b +/// +/// NB: Uses to/from FieldAligned coordinates +/// +/// No fluxes through domain boundaries const Field3D D4DY4(const Field3D& d, const Field3D& f); -/*! - * 4th-order dissipation term - * - * - * A one-sided 3rd-order derivative, given a value - * at a boundary is: - * - * d3f/dx3 ~= 16/5 f_b - 6 f_0 + 4 f_1 - 6/5 f_2 - * - * where f_b is the value on the boundary; f_0 is the cell - * to the left of the boundary; f_1 to the left of f_0 and f_2 - * to the left of f_1 - * - * f_2 | f_1 | f_0 | - * f_b - */ +/// 4th-order dissipation term +/// +/// \f[ +/// \frac{d^3f}{dx^3} \simeq \tfrac{16}{5} f_b - 6 f_0 + 4 f_1 - \tfrac{6}{5} f_2 +/// \f] +/// +/// where: +/// +/// - \f$f_b\f$ is the value on the boundary, +/// - \f$f_0\f$ is the cell to the left of the boundary, +/// - \f$f_1\f$ to the left of \f$f_0\f$, and +/// - \f$f_2\f$ to the left of f_1: +/// +/// .. code:: text +/// f_2 | f_1 | f_0 | +/// f_b const Field3D D4DY4_Index(const Field3D& f, bool bndry_flux = true); /*! @@ -74,10 +80,10 @@ const Field3D D4DY4_Index(const Field3D& f, bool bndry_flux = true); * which includes cell face values L and R */ struct Stencil1D { - // Cell centre values + /// Cell centre values BoutReal c, m, p, mm, pp; - // Left and right cell face values + /// Left and right cell face values BoutReal L, R; }; diff --git a/include/bout/generic_factory.hxx b/include/bout/generic_factory.hxx index 9493ef77f1..589431bc2a 100644 --- a/include/bout/generic_factory.hxx +++ b/include/bout/generic_factory.hxx @@ -1,5 +1,9 @@ +/// \file /// Base type for factories +// Copyright 2018-2022 Peter Hill, BOUT++ Team +// SPDX-License-Identifier: MIT + #pragma once #ifndef BOUT_GENERIC_FACTORY_H #define BOUT_GENERIC_FACTORY_H @@ -48,6 +52,14 @@ /// RegisterInFactory register("derived_type"); /// auto foo = MyFactory::getInstance().create("derived_type"); /// +/// In a .cxx file the static members should be declared: +/// +/// constexpr decltype(MyFactory::type_name) MyFactory::type_name; +/// constexpr decltype(MyFactory::section_name) MyFactory::section_name; +/// constexpr decltype(MyFactory::option_name) MyFactory::option_name; +/// constexpr decltype(MyFactory::default_type) MyFactory::default_type; +/// +/// /// @tparam BaseType The base class that this factory creates /// @tparam DerivedFactory The derived factory inheriting from this class /// @tparam TypeCreator The function signature for creating a new BaseType diff --git a/include/bout/gyro_average.hxx b/include/bout/gyro_average.hxx index 63ef13279b..665024797d 100644 --- a/include/bout/gyro_average.hxx +++ b/include/bout/gyro_average.hxx @@ -41,7 +41,9 @@ constexpr int GYRO_FLAGS = INVERT_BNDRY_ONE + INVERT_RHS; /// Gyro-average using Taylor series approximation /// -/// \f$ \Gamma(f) = f + \rho^2 \nabla_\perp^2(f)\f$ +/// \f[ +/// \Gamma(f) = f + \rho^2 \nabla_\perp^2(f) +/// \f] /// /// Note: Faster, but less robust than Pade approximations /// @@ -51,7 +53,9 @@ Field3D gyroTaylor0(const Field3D& f, const Field3D& rho); /// Gyro-average using Pade approximation /// -/// \f$ \Gamma_0 = (1 - \rho^2 \nabla_\perp^2)g = f\f$ +/// \f[ +/// \Gamma_0 = (1 - \rho^2 \nabla_\perp^2)g = f +/// \f] /// /// NOTE: Uses Z average of rho for efficient inversion /// @@ -70,7 +74,11 @@ Field3D gyroPade0(const Field3D& f, const Field2D& rho, Field3D gyroPade0(const Field3D& f, BoutReal rho, int inner_boundary_flags = GYRO_FLAGS, int outer_boundary_flags = GYRO_FLAGS); -/// Pade approximation \f$Gamma_1 = (1 - \frac{1}{2} \rho^2 \nabla_\perp^2)g = f\f$ +/// Pade approximation +/// +/// \f[ +/// \Gamma_1 = (1 - \frac{1}{2} \rho^2 \nabla_\perp^2)g = f +/// \f] /// /// Note: Have to use Z average of rho for efficient inversion /// diff --git a/include/bout/hyprelib.hxx b/include/bout/hyprelib.hxx index 407b0eacda..07daa0b641 100644 --- a/include/bout/hyprelib.hxx +++ b/include/bout/hyprelib.hxx @@ -1,24 +1,24 @@ -/*!************************************************************************ +/*! \file ****************************************************************** * Provides access to the Hypre library, handling initialisation and * finalisation. * * Usage * ----- * - * #include + * #include * - * class MyClass { - * public: + * class MyClass { + * HypreLib lib; + * 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. - * - ************************************************************************** + * This will then automatically ensure Hypre is initialised the first + * time an instance is created, and finalise it when the last instances is + * destroyed (across all objects using `HypreLib`) + */ +/************************************************************************** * Copyright 2012 B.D.Dudson, S.Farley, M.V.Umansky, X.Q.Xu * * Contact: Ben Dudson, bd512@york.ac.uk @@ -43,16 +43,17 @@ #ifndef BOUT_HYPRELIB_H #define BOUT_HYPRELIB_H -#include "bout/build_config.hxx" +#include "bout/build_defines.hxx" namespace bout { -#if BOUT_HAS_HYPRE /*! * Handles initialisation and finalisation of Hypre library. - * The first instance which is created initialises Hypre. - * Keeps a count of the number of how many instances exist - * when the last instance is destroyed it finalises Hypre. + * + * The first instance which is created initialises Hypre. Keeps a + * count of the number of how many instances exist, and when the last + * instance is destroyed it finalises Hypre. */ +#if BOUT_HAS_HYPRE class HypreLib { public: explicit HypreLib(); @@ -64,10 +65,11 @@ public: ~HypreLib(); + /// Immediately finalise Hypre library static void cleanup(); private: - static int count; ///< How many instances? + static int count; ///< Current number of instances }; #else // BOUT_HAS_HYPRE diff --git a/include/bout/initialprofiles.hxx b/include/bout/initialprofiles.hxx index a2fc050b15..fe0bd71686 100644 --- a/include/bout/initialprofiles.hxx +++ b/include/bout/initialprofiles.hxx @@ -58,22 +58,22 @@ class Vector3D; * ------- * Given the input file: * - * [All] - * function = sin(y) + * [all] + * function = sin(y) * - * [pressure] + * [pressure] * - * [density] - * scale = 0.2 + * [density] + * scale = 0.2 * - * [vorticity] - * function = cos(y) + * [vorticity] + * function = cos(y) * - * initial_profile would generate: + * `initial_profile` would generate: * - * o pressure -> sin(y) - * o density -> 0.2*sin(y) - * o vorticity -> cos(y) + * - ``pressure -> sin(y)`` + * - ``density -> 0.2*sin(y)`` + * - ``vorticity -> cos(y)`` * */ void initial_profile(const std::string& name, Field3D& var); diff --git a/include/bout/invert/laplacexy2.hxx b/include/bout/invert/laplacexy2.hxx index 51f75f467d..fe1ddf50dd 100644 --- a/include/bout/invert/laplacexy2.hxx +++ b/include/bout/invert/laplacexy2.hxx @@ -1,14 +1,16 @@ /************************************************************************** + * \file * Laplacian solver in 2D (X-Y) * * Equation solved is: + * \f[ + * \nabla(A \cdot \nabla_\perp(x)) + B x = b + * \f] * - * Div( A * Grad_perp(x) ) + B*x = b - * - * Intended for use in solving n = 0 component of potential + * Intended for use in solving ``n = 0`` component of potential * from inversion of vorticity equation - * - ************************************************************************** + */ +/************************************************************************** * Copyright 2015 B.Dudson * * Contact: Ben Dudson, bd512@york.ac.uk diff --git a/include/bout/invert_laplace.hxx b/include/bout/invert_laplace.hxx index f7b9501a81..dea92ecbb2 100644 --- a/include/bout/invert_laplace.hxx +++ b/include/bout/invert_laplace.hxx @@ -3,11 +3,14 @@ * * Perpendicular Laplacian inversion using FFT and Tridiagonal solver * - * Equation solved is: \f$d*\nabla^2_\perp x + (1/c)\nabla_perp c\cdot\nabla_\perp x + a x = b\f$ + * Equation solved is: + * \f[ + * d \nabla^2_\perp x + (1/c)\nabla_\perp c\cdot\nabla_\perp x + a x = b + * \f] * * Where a, c and d are functions of x and y only (not z) - * - ************************************************************************** + */ +/************************************************************************** * Copyright 2010 B.D.Dudson, S.Farley, M.V.Umansky, X.Q.Xu * * Contact: Ben Dudson, bd512@york.ac.uk diff --git a/include/bout/lapack_routines.hxx b/include/bout/lapack_routines.hxx index d81c0b422d..be8a9d2f22 100644 --- a/include/bout/lapack_routines.hxx +++ b/include/bout/lapack_routines.hxx @@ -1,8 +1,22 @@ +/// \file +/// +/// Serial code to invert a complex tridiagonal system +/// +/// Solves a banded matrix given the matrix in compact form: +/// +/// a[0...(n-1)][0...(m1+m2)] +/// +/// and the rhs vector: +/// +/// b[0...(n-1)] +/// +/// ``a`` is overwritten, and ``b`` is replaced by the solution + /************************************************************************** * Copyright 2010 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 @@ -25,35 +39,34 @@ #include -/* Tridiagonal inversion - * - * a = Left of diagonal (so a[0] not used) - * b = diagonal terms - * c = Right of diagonal (so c[n-1] not used) - * r = RHS vector - * u = Result vector - * n = Length of vectors - * - * - * b[0] c[0] - * a[1] b[1] c[1] - * . . . - * - */ - -// Tri-diagonal solvers +/// Tridiagonal inversion +/// +/// \param a Left of diagonal (so a[0] not used) +/// \param b diagonal terms +/// \param c Right of diagonal (so c[n-1] not used) +/// \param r RHS vector +/// \param u Result vector +/// \param n Length of vectors +/// +/// b[0] c[0] +/// a[1] b[1] c[1] +/// . . . +/// +/// Uses LAPACK routine ZGTSV int tridag(const dcomplex* a, const dcomplex* b, const dcomplex* c, const dcomplex* r, dcomplex* u, int n); bool tridag(const BoutReal* a, const BoutReal* b, const BoutReal* c, const BoutReal* r, BoutReal* x, int n); -// Cyclic tridiagonal +/// Cyclic tridiagonal +/// +/// Uses Sherman-Morrison formula void cyclic_tridag(BoutReal* a, BoutReal* b, BoutReal* c, BoutReal* r, BoutReal* x, int n); void cyclic_tridag(dcomplex* a, dcomplex* b, dcomplex* c, dcomplex* r, dcomplex* x, int n); -/// Complex band matrix solver +/// Complex band matrix solver using ZGBSV void cband_solve(Matrix& a, int n, int m1, int m2, Array& b); #endif // BOUT_LAPACK_ROUTINES_H diff --git a/include/bout/openmpwrap.hxx b/include/bout/openmpwrap.hxx index 582df7b86c..00d0b1e5b7 100644 --- a/include/bout/openmpwrap.hxx +++ b/include/bout/openmpwrap.hxx @@ -1,8 +1,6 @@ -/************************************************************************/ /** - * \brief Openmp utilitiy wrappers - * - * - ************************************************************************** +/// \file +/// Openmp utilitiy wrappers +/************************************************************************** * Copyright 2017 * * Contact: Ben Dudson, bd512@york.ac.uk @@ -40,8 +38,8 @@ #define INDIRECT1(a) INDIRECT0(omp a) #define INDIRECT2(b) INDIRECT1(b) -//Define a macro wrapper to the use of `#pragma omp` to avoid unknown pragma -//warnings when compiling without openmp support. +/// Wrapper to use `#pragma omp` while avoiding unknown pragma +/// warnings when compiling without openmp support. #define BOUT_OMP_SAFE(...) _Pragma(INDIRECT2(__VA_ARGS__)) #define BOUT_OMP(...) _Pragma(INDIRECT2(__VA_ARGS__)) #else diff --git a/include/bout/options_io.hxx b/include/bout/options_io.hxx index 4c70159514..f149c23ec0 100644 --- a/include/bout/options_io.hxx +++ b/include/bout/options_io.hxx @@ -1,3 +1,4 @@ +/// \file /// Parent class for IO to binary files and streams /// /// @@ -5,8 +6,8 @@ /// /// 1. Dump files, containing time history: /// -/// auto dump = OptionsIOFactory::getInstance().createOutput(); -/// dump->write(data); +/// auto dump = OptionsIOFactory::getInstance().createOutput(); +/// dump->write(data); /// /// where data is an Options tree. By default dump files are configured /// with the root `output` section, or an Option tree can be passed to @@ -14,19 +15,19 @@ /// /// 2. Restart files: /// -/// auto restart = OptionsIOFactory::getInstance().createOutput(); -/// restart->write(data); +/// auto restart = OptionsIOFactory::getInstance().createOutput(); +/// restart->write(data); /// /// where data is an Options tree. By default restart files are configured /// with the root `restart_files` section, or an Option tree can be passed to /// `createRestart`. /// /// 3. Ad-hoc single files -/// Note: The caller should consider how multiple processors interact with the file. +/// Note: The caller should consider how multiple processors interact with the file. /// -/// auto file = OptionsIOFactory::getInstance().createFile("some_file.nc"); -/// or -/// auto file = OptionsIO::create("some_file.nc"); +/// auto file = OptionsIOFactory::getInstance().createFile("some_file.nc"); +/// // or +/// auto file = OptionsIO::create("some_file.nc"); /// /// diff --git a/include/bout/optionsreader.hxx b/include/bout/optionsreader.hxx index de3d40514d..ee5a663945 100644 --- a/include/bout/optionsreader.hxx +++ b/include/bout/optionsreader.hxx @@ -1,4 +1,4 @@ -/*!************************************************************************ +/*! \file * Singleton class for reading options files * * Uses a bridge pattern to access OptionParser classes to parse @@ -6,8 +6,8 @@ * * Handles the command-line parsing * -* -************************************************************************** +*/ +/************************************************************************* * Copyright 2010 B.D.Dudson, S.Farley, M.V.Umansky, X.Q.Xu * * Contact: Ben Dudson, bd512@york.ac.uk @@ -46,11 +46,11 @@ class OptionsReader; /// Example /// ------- /// -/// Options opt; -/// OptionsReader::getInstance()->read(&opt, "somefile.inp"); -/// -/// opt now contains a tree of sections and options from the input file "somefile.inp" +/// Options opt; +/// OptionsReader::getInstance()->read(&opt, "somefile.inp"); /// +/// ``opt`` now contains a tree of sections and options from the input +/// file "somefile.inp" class OptionsReader { public: /// Return a pointer to the instance singleton diff --git a/include/bout/output.hxx b/include/bout/output.hxx index 2862899067..a3a36635f3 100644 --- a/include/bout/output.hxx +++ b/include/bout/output.hxx @@ -1,7 +1,7 @@ +/// \file +/// Logging, for printing messages/errors etc. + /************************************************************************** - * Output, for printing messages/errors etc. - * - ************************************************************************** * Copyright 2010 B.D.Dudson, S.Farley, M.V.Umansky, X.Q.Xu * * Contact: Ben Dudson, bd512@york.ac.uk @@ -45,19 +45,18 @@ class Output; using std::endl; /// Class for text output to stdout and/or log file -/*! - This class can be used to output either in fmt format: - - output.write("A string {:s} and number {:d}\n", str, i); - - or as a C++ stream buffer: - - output << "A string " << str << " and number " << i << endl; - - If a file has been opened (i.e. the processor's log file) then the string - will be written to the file. In addition, output to stdout can be enabled - and disabled. -*/ +/// +/// This class can be used to output either in ``fmt`` format: +/// +/// output.write("A string {:s} and number {:d}\n", str, i); +/// +/// or as a C++ stream buffer: +/// +/// output << "A string " << str << " and number " << i << endl; +/// +/// If a file has been opened (i.e. the processor's log file) then the string +/// will be written to the file. In addition, output to stdout can be enabled +/// and disabled. class Output : private multioutbuf_init>, public std::basic_ostream> { diff --git a/include/bout/physicsmodel.hxx b/include/bout/physicsmodel.hxx index 9fa25d8b0f..2a7618905f 100644 --- a/include/bout/physicsmodel.hxx +++ b/include/bout/physicsmodel.hxx @@ -402,19 +402,18 @@ private: }; /*! - * Macro to define a simple main() which creates - * the given model and runs it. This should be sufficient - * for most use cases, but a user can define their own - * main() function if needed. + * Macro to define a simple ``main()`` which creates the given model + * and runs it. This should be sufficient for most use cases, but a + * user can define their own ``main()`` function if needed. * * Example * ------- * - * class MyModel : public PhysicsModel { - * .. - * }; + * class MyModel : public PhysicsModel { + * // ... + * }; * - * BOUTMAIN(MyModel); + * BOUTMAIN(MyModel); */ #define BOUTMAIN(ModelClass) \ int main(int argc, char** argv) { \ diff --git a/include/bout/rajalib.hxx b/include/bout/rajalib.hxx index b9f6913459..83be632d48 100644 --- a/include/bout/rajalib.hxx +++ b/include/bout/rajalib.hxx @@ -1,4 +1,4 @@ -/*! +/*! \file * RAJA library utilities and wrappers * * Defines: diff --git a/include/bout/sys/gettext.hxx b/include/bout/sys/gettext.hxx index a17412118c..d8666448f5 100644 --- a/include/bout/sys/gettext.hxx +++ b/include/bout/sys/gettext.hxx @@ -1,3 +1,4 @@ +/// \file /// Support for i18n using GNU gettext #ifndef BOUT_GETTEXT_H diff --git a/include/bout/sys/uuid.h b/include/bout/sys/uuid.h index d043ea780e..9cff7727f2 100644 --- a/include/bout/sys/uuid.h +++ b/include/bout/sys/uuid.h @@ -1,14 +1,15 @@ -// Based on stduuid by Marius Bancila: https://github.com/mariusbancila/stduuid -// Originially copied from version at commit 5890c94bfac2f00f22a1c1481e5839c51d6a6f3f -// This version hacked by J. Omotani to make it C++14 compatible: -// - remove uses of span -// - brace-initialise std::atomic_short clock_sequence to avoid deleted -// move-constructor error -// - remove use of std::optional. Throw exceptions instead. -// - replace std::bytes with char -// - replace 'if constexpr' with plain 'if' -// - replace 'is_same_v<>' with 'is_same<>::value' -// - replace std::copy with strncpy in uuid_name_generator::reset() +/// Based on stduuid by Marius Bancila: https://github.com/mariusbancila/stduuid +/// +/// Originially copied from version at commit 5890c94bfac2f00f22a1c1481e5839c51d6a6f3f +/// This version hacked by J. Omotani to make it C++14 compatible: +/// - remove uses of span +/// - brace-initialise std::atomic_short clock_sequence to avoid deleted +/// move-constructor error +/// - remove use of std::optional. Throw exceptions instead. +/// - replace std::bytes with char +/// - replace 'if constexpr' with plain 'if' +/// - replace 'is_same_v<>' with 'is_same<>::value' +/// - replace std::copy with strncpy in uuid_name_generator::reset() // // Copyright (c) 2017 // @@ -261,7 +262,7 @@ class sha1 { size_t m_byteCount; }; -static std::mt19937 clock_gen(std::random_device{}()); +static std::mt19937 clock_gen{std::random_device{}()}; static std::uniform_int_distribution clock_dis{-32768, 32767}; static std::atomic_short clock_sequence{clock_dis(clock_gen)}; } // namespace detail diff --git a/include/bout/sys/variant.hxx b/include/bout/sys/variant.hxx index f47d67e229..1b541f096d 100644 --- a/include/bout/sys/variant.hxx +++ b/include/bout/sys/variant.hxx @@ -1,15 +1,15 @@ -/// +/// \file /// Variant utilities /// /// All in namespace bout::utils -/// variant -/// visit -/// holds_alternative -/// get /// -/// variantEqualTo -/// variantStaticCastOrThrow -/// variantToString +/// - `variant` +/// - `visit` +/// - `holds_alternative` +/// - `get` +/// - `variantEqualTo` +/// - `variantStaticCastOrThrow` +/// - `variantToString` /// /// Internal implementation in bout::utils::details diff --git a/include/bout/vectormetric.hxx b/include/bout/vectormetric.hxx index 3ac31c2a45..1c4907ff43 100644 --- a/include/bout/vectormetric.hxx +++ b/include/bout/vectormetric.hxx @@ -1,3 +1,7 @@ +/// \file +/// Header to simplify using `Vector2D`/`Vector3D` when switching +/// between 2D and 3D metrics in user code + #pragma once #include "bout/build_config.hxx" diff --git a/manual/doxygen/Doxyfile b/manual/doxygen/Doxyfile index 216ef60915..1cc235558a 100644 --- a/manual/doxygen/Doxyfile +++ b/manual/doxygen/Doxyfile @@ -246,34 +246,6 @@ ALIASES = TCL_SUBST = -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it @@ -328,21 +300,7 @@ AUTOLINK_SUPPORT = YES # diagrams that involve STL classes more complete and accurate. # The default value is: NO. -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO +BUILTIN_STL_SUPPORT = YES # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make @@ -352,7 +310,7 @@ SIP_SUPPORT = NO # should set this option to NO. # The default value is: YES. -IDL_PROPERTY_SUPPORT = YES +IDL_PROPERTY_SUPPORT = NO # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first @@ -435,13 +393,13 @@ LOOKUP_CACHE_SIZE = 0 # normally produced when WARNINGS is set to YES. # The default value is: NO. -EXTRACT_ALL = YES +EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. -EXTRACT_PRIVATE = YES +EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. @@ -463,14 +421,6 @@ EXTRACT_STATIC = YES EXTRACT_LOCAL_CLASSES = YES -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = YES - # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of @@ -508,7 +458,7 @@ HIDE_FRIEND_COMPOUNDS = NO # blocks will be appended to the function's detailed documentation block. # The default value is: NO. -HIDE_IN_BODY_DOCS = NO +HIDE_IN_BODY_DOCS = YES # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation @@ -590,7 +540,7 @@ SORT_BRIEF_DOCS = NO # detailed member documentation. # The default value is: NO. -SORT_MEMBERS_CTORS_1ST = NO +SORT_MEMBERS_CTORS_1ST = YES # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will @@ -623,19 +573,19 @@ STRICT_PROTO_MATCHING = NO # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. -GENERATE_TODOLIST = YES +GENERATE_TODOLIST = NO # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. -GENERATE_TESTLIST = YES +GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. -GENERATE_BUGLIST = YES +GENERATE_BUGLIST = NO # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in @@ -673,7 +623,7 @@ SHOW_USED_FILES = YES # (if specified). # The default value is: YES. -SHOW_FILES = YES +SHOW_FILES = NO # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the @@ -791,7 +741,7 @@ WARN_LOGFILE = # Note: If this tag is empty the current directory is searched. INPUT = ../../include/bout \ - ../../src/ + ../../src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -816,11 +766,8 @@ INPUT_ENCODING = UTF-8 # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, # *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. -FILE_PATTERNS = *.c \ - *.cxx \ - *.h \ - *.hxx \ - *.py +FILE_PATTERNS = *.h \ + *.hxx # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. @@ -858,99 +805,6 @@ EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- @@ -1005,7 +859,7 @@ REFERENCES_LINK_SOURCE = YES # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. -SOURCE_TOOLTIPS = YES +SOURCE_TOOLTIPS = NO # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in @@ -1048,21 +902,6 @@ VERBATIM_HEADERS = NO ALPHABETICAL_INDEX = NO -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- @@ -1070,542 +909,7 @@ IGNORE_PREFIX = # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /