# This file contains project-specific configurations for the
# deal.II documentation.

PROJECT_NAME           = "The deal.II Library"
PROJECT_NUMBER         = "Reference documentation for deal.II version @DEAL_II_PACKAGE_VERSION@"
PROJECT_LOGO           = @CMAKE_CURRENT_SOURCE_DIR@/images/logo200.png
OUTPUT_DIRECTORY       = .

# The doxygen documentation says this about the following flag:
#   If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
#   4096 sub-directories (in 2 levels) under the output directory of each output
#   format and will distribute the generated files over these directories.
#   Enabling this option can be useful when feeding doxygen a huge amount of
#   source files, where putting all generated files in the same directory would
#   otherwise cause performance problems for the file system.
# We set the flag to NO since we occasionally need to reference individual
# doxygen-generated files from other parts of the documentation and need
# to have predictable file paths.
#
# The same is true for SHORT_NAMES, which compresses file names, and
# CASE_SENSE_NAMES which allows file names to contain upper case letters.
CREATE_SUBDIRS         = NO
SHORT_NAMES            = NO
CASE_SENSE_NAMES       = YES


INLINE_INHERITED_MEMB  = YES
STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@ @CMAKE_BINARY_DIR@
STRIP_FROM_INC_PATH    = @CMAKE_SOURCE_DIR@/include @CMAKE_BINARY_DIR@/include

FULL_PATH_NAMES        = YES
JAVADOC_AUTOBRIEF      = NO
INHERIT_DOCS           = YES
TAB_SIZE               = 8

BUILTIN_STL_SUPPORT    = YES


#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------

EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = YES
EXTRACT_STATIC         = YES
EXTRACT_LOCAL_CLASSES  = YES
EXTRACT_PACKAGE        = NO

HIDE_UNDOC_MEMBERS     = NO
HIDE_UNDOC_CLASSES     = NO
SORT_MEMBER_DOCS       = NO
SORT_BRIEF_DOCS        = NO
SORT_BY_SCOPE_NAME     = NO
GENERATE_TODOLIST      = YES
GENERATE_DEPRECATEDLIST= YES
SHOW_USED_FILES        = YES

#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------

QUIET                  = YES
WARNINGS               = YES
WARN_IF_UNDOCUMENTED   = NO
WARN_IF_DOC_ERROR      = YES

#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------

INPUT                  =
RECURSIVE              = YES
EXCLUDE_PATTERNS       = *.templates.h \
                         CMakeLists.txt
EXAMPLE_PATH           = @CMAKE_BINARY_DIR@/doc/doxygen/tutorial \
                         @CMAKE_SOURCE_DIR@/examples/doxygen
EXAMPLE_RECURSIVE      = NO
IMAGE_PATH             =
INPUT_FILTER           = ${CMAKE_SOURCE_DIR}/doc/doxygen/scripts/filter.pl
FILTER_SOURCE_FILES    = YES

# Have some user defined commands that we can use in the documentation
# and that expands to specific text. For some more transformations, see
# the scripts/filter.pl perl script that is run over the header files before
# doxygen sees it and that can expand more complex expressions.
ALIASES += dealiiRequiresUpdateFlags{1}="@note For this function to work properly, the underlying FEValues, FEFaceValues, or FESubfaceValues object on which you call it must have computed the information you are requesting. To do so, the <code>\1</code> flag must be an element of the list of UpdateFlags that you passed to the constructor of this object. See @ref UpdateFlags for more information."

ALIASES += dealiiOperationIsMultithreaded="@note If deal.II is configured with threads, this operation will run multi-threaded by splitting the work into smaller chunks (assuming there is enough work to make this worthwhile)."

ALIASES += dealiiExceptionMessage{1}="@note The message that will be printed by this exception reads: <div class='doxygen-generated-exception-message'> \1 </div> "

ALIASES += dealiiWriggersA{2}="@note For a discussion of the background of this function, see P. Wriggers: \"Nonlinear finite element methods\" (2008), and in particular formula (\2) on p. \1 (or thereabouts). "

ALIASES += dealiiHolzapfelA{2}="@note For a discussion of the background of this function, see G. A. Holzapfel: \"Nonlinear solid mechanics. A Continuum Approach for Engineering\" (2007), and in particular formula (\2) on p. \1 (or thereabouts). "

ALIASES += dealiiConceptRequires{1}="@note This class, function, or variable is a template, and it can only be instantiated if the following condition is true: @code \1 @endcode If your compiler supports the C++20 standard, then this constraint will be enforced by a [C++20 requires clause](https://en.cppreference.com/w/cpp/language/constraints)."

#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------

SOURCE_BROWSER         = YES
INLINE_SOURCES         = NO
STRIP_CODE_COMMENTS    = YES
USE_HTAGS              = NO
VERBATIM_HEADERS       = NO

#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------

ALPHABETICAL_INDEX     = YES

#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------

GENERATE_HTML          = YES
HTML_OUTPUT            = deal.II
HTML_FILE_EXTENSION    = .html
HTML_HEADER            = header.html
HTML_FOOTER            = footer.html
USE_MATHJAX            = @_use_mathjax@
MATHJAX_RELPATH        = @_mathjax_relpath@
MATHJAX_EXTENSIONS     = TeX/AMSmath TeX/AMSsymbols
HTML_COLORSTYLE_HUE    = 220
HTML_COLORSTYLE_SAT    = 200
HTML_EXTRA_STYLESHEET  = @CMAKE_CURRENT_SOURCE_DIR@/stylesheet.css
LAYOUT_FILE            = @CMAKE_CURRENT_SOURCE_DIR@/DoxygenLayout.xml


#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------

# don't generate latex output -- it's simply too big!
GENERATE_LATEX         = NO

# but set a few flags for when processing formulas embedded
# in the documentation.
PAPER_TYPE             = a4
EXTRA_PACKAGES         = amsmath amsfonts mathtools @_extra_packages@
LATEX_BATCHMODE        = YES

#---------------------------------------------------------------------------
# Other output formats
#---------------------------------------------------------------------------

GENERATE_RTF           = NO
GENERATE_MAN           = NO
GENERATE_XML           = NO
GENERATE_AUTOGEN_DEF   = NO
GENERATE_PERLMOD       = NO

#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
SEARCH_INCLUDES        = YES
INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/include @CMAKE_BINARY_DIR@/include @_inst_in_dirs@
INCLUDE_FILE_PATTERNS  =

# Set a few variables that help us generate documentation for things
# like the PETSc and Trilinos wrappers, even if they were not
# configured. We want to do that because we want the documentation to
# reflect the most complete picture of the library, even if the system
# on which the documentation was built doesn't actually have all
# possible dependencies installed.
#
# In the case of DEAL_II_NAMESPACE_OPEN/CLOSE, just expand them
# to nothing so that they don't show up in the documentation
# at all.
PREDEFINED             = DOXYGEN=1 \
                         DEBUG=1 \
                         DEAL_II_WARNING(x)= \
                         DEAL_II_USE_MT_POSIX=1 \
                         DEAL_II_CONSTEXPR=constexpr \
                         DEAL_II_NAMESPACE_OPEN= \
                         DEAL_II_NAMESPACE_CLOSE= \
                         DEAL_II_ENABLE_EXTRA_DIAGNOSTICS= \
                         DEAL_II_DISABLE_EXTRA_DIAGNOSTICS= \
                         DEAL_II_DEPRECATED= \
                         DEAL_II_HOST_DEVICE= \
                         DEAL_II_ALWAYS_INLINE= \
                         __device__= \
                         DEAL_II_WITH_ADOLC=1 \
                         DEAL_II_ADOLC_WITH_ADVANCED_BRANCHING=1 \
                         DEAL_II_ADOLC_WITH_ATRIG_ERF=1 \
                         DEAL_II_ADOLC_WITH_TAPELESS_REFCOUNTING=1 \
                         DEAL_II_DEPRECATED_EARLY= \
                         DEAL_II_WITH_ARBORX=1 \
                         DEAL_II_ARBORX_WITH_MPI=1 \
                         DEAL_II_WITH_ARPACK=1 \
                         DEAL_II_ARPACK_WITH_PARPACK=1 \
                         DEAL_II_WITH_ASSIMP=1 \
                         DEAL_II_WITH_BOOST=1 \
                         DEAL_II_WITH_CGAL=1 \
                         DEAL_II_CGAL_VERSION_GTE=1 \
                         DEAL_II_WITH_TASKFLOW=1 \
                         DEAL_II_WITH_COMPLEX_VALUES=1 \
                         DEAL_II_WITH_CUDA=1 \
                         DEAL_II_WITH_GINKGO=1 \
                         DEAL_II_WITH_GMSH=1 \
                         DEAL_II_GMSH_WITH_API=1 \
                         DEAL_II_WITH_GSL=1 \
                         DEAL_II_WITH_HDF5=1 \
                         DEAL_II_WITH_LAPACK=1 \
                         DEAL_II_LAPACK_WITH_MKL=1 \
                         DEAL_II_WITH_METIS=1 \
                         DEAL_II_WITH_MPI=1 \
                         DEAL_II_MPI_WITH_DEVICE_SUPPORT=1 \
                         DEAL_II_MPI_VERSION_MAJOR=3 \
                         DEAL_II_MPI_VERSION_MINOR=0 \
                         DEAL_II_WITH_MUPARSER=1 \
                         DEAL_II_WITH_OPENCASCADE=1 \
                         DEAL_II_OPENCASCADE_VERSION_MAJOR=7 \
                         DEAL_II_OPENCASCADE_VERSION_MINOR=6 \
                         DEAL_II_OPENCASCADE_VERSION_SUBMINOR=0 \
                         DEAL_II_OPENCASCADE_VERSION_GTE=1 \
                         DEAL_II_WITH_P4EST=1 \
                         DEAL_II_P4EST_VERSION_MAJOR=2 \
                         DEAL_II_P4EST_VERSION_MINOR=0 \
                         DEAL_II_P4EST_VERSION_SUBMINOR=0 \
                         DEAL_II_P4EST_VERSION_PATCH=0 \
                         DEAL_II_P4EST_VERSION_GTE=1 \
                         DEAL_II_WITH_PETSC=1 \
                         DEAL_II_PETSC_WITH_COMPLEX=1 \
                         DEAL_II_PETSC_WITH_HYPRE=1 \
                         DEAL_II_PETSC_WITH_MUMPS=1 \
                         DEAL_II_WITH_SCALAPACK=1 \
                         DEAL_II_WITH_SLEPC=1 \
                         DEAL_II_WITH_SUNDIALS=1 \
                         DEAL_II_SUNDIALS_WITH_IDAS=1 \
                         DEAL_II_SUNDIALS_VERSION_GTE=1 \
                         DEAL_II_SUNDIALS_VERSION_LT=0 \
                         DEAL_II_WITH_SYMENGINE=1 \
                         DEAL_II_SYMENGINE_WITH_LLVM=1 \
                         DEAL_II_WITH_TBB=1 \
                         DEAL_II_WITH_TRILINOS=1 \
                         DEAL_II_TRILINOS_WITH_EPETRAEXT=1 \
                         DEAL_II_TRILINOS_WITH_MUELU=1 \
                         DEAL_II_TRILINOS_WITH_NOX=1 \
                         DEAL_II_TRILINOS_WITH_ROL=1 \
                         DEAL_II_TRILINOS_WITH_SACADO=1 \
                         DEAL_II_TRILINOS_WITH_TPETRA=1 \
                         DEAL_II_TRILINOS_WITH_ZOLTAN=1 \
                         DEAL_II_TRILINOS_VERSION_GTE=1 \
                         DEAL_II_WITH_UMFPACK=1 \
                         DEAL_II_WITH_ZLIB=1

# do not expand exception declarations
EXPAND_AS_DEFINED      = DeclExceptionMsg \
                         DeclException0 \
                         DeclException1 \
                         DeclException2 \
                         DeclException3 \
                         DeclException4 \
                         DeclException5
SKIP_FUNCTION_MACROS   = YES

#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------

GENERATE_TAGFILE       = deal.tag
ALLEXTERNALS           = NO
EXTERNAL_GROUPS        = YES

#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------

HIDE_UNDOC_RELATIONS   = NO
HAVE_DOT               = YES
CLASS_GRAPH            = YES
COLLABORATION_GRAPH    = NO
GROUP_GRAPHS           = YES
UML_LOOK               = NO
TEMPLATE_RELATIONS     = YES
INCLUDE_GRAPH          = NO
INCLUDED_BY_GRAPH      = NO
CALL_GRAPH             = NO
CALLER_GRAPH           = NO
GRAPHICAL_HIERARCHY    = NO
DIRECTORY_GRAPH        = YES
DOT_IMAGE_FORMAT       = svg
MAX_DOT_GRAPH_DEPTH    = 5
GENERATE_LEGEND        = YES

DOT_CLEANUP            = YES

#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------

SEARCHENGINE           = YES
SERVER_BASED_SEARCH    = NO

#---------------------------------------------------------------------------
# Configuration options related to bibtex citations
#---------------------------------------------------------------------------

CITE_BIB_FILES         = @CMAKE_CURRENT_SOURCE_DIR@/references.bib
