mirror of
https://git.gfz-potsdam.de/naaice/poet.git
synced 2025-12-15 20:38:23 +01:00
new file describing output of POET + added target doxygen to CMake
This commit is contained in:
parent
7fc3002b5d
commit
f7d94218c6
@ -23,3 +23,9 @@ find_package(RInside REQUIRED)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(R_lib)
|
||||
add_subdirectory(data)
|
||||
|
||||
option(BUILD_DOC "Build documentation with doxygen" ON)
|
||||
|
||||
if(BUILD_DOC)
|
||||
add_subdirectory(docs)
|
||||
endif(BUILD_DOC)
|
||||
|
||||
18
docs/CMakeLists.txt
Normal file
18
docs/CMakeLists.txt
Normal file
@ -0,0 +1,18 @@
|
||||
find_package(Doxygen)
|
||||
if(DOXYGEN_FOUND)
|
||||
|
||||
set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/./Doxyfile.in)
|
||||
set(DOXYGEN_OUT ${CMAKE_BINARY_DIR}/Doxyfile)
|
||||
|
||||
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
|
||||
|
||||
add_custom_target(doc_doxygen ALL
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating documantation with doxygen"
|
||||
VERBATIM)
|
||||
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/ DESTINATION docs)
|
||||
else(DOXYGEN_FOUND)
|
||||
message("Doxygen not found. Please install.")
|
||||
endif(DOXYGEN_FOUND)
|
||||
@ -13,6 +13,58 @@
|
||||
# TAG += value [value, ...]
|
||||
# Values that contain spaces should be placed between quotes (\" \").
|
||||
|
||||
###############################################################################
|
||||
#########################GENERATED BY CMAKE####################################
|
||||
###############################################################################
|
||||
|
||||
|
||||
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
|
||||
# double-quotes, unless you are using Doxywizard) that should identify the
|
||||
# project for which the documentation is generated. This name is used in the
|
||||
# title of most generated pages and in a few other places.
|
||||
# The default value is: My Project.
|
||||
|
||||
PROJECT_NAME = @CMAKE_PROJECT_NAME@
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = @CMAKE_PROJECT_VERSION@
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
|
||||
# into which the generated documentation will be written. If a relative path is
|
||||
# entered, it will be relative to the location where doxygen was started. If
|
||||
# left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/doxygen
|
||||
|
||||
# The INPUT tag is used to specify the files and/or directories that contain
|
||||
# documented source files. You may enter file names like myfile.cpp or
|
||||
# directories like /usr/src/myproject. Separate the files or directories with
|
||||
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
|
||||
# Note: If this tag is empty the current directory is searched.
|
||||
|
||||
INPUT = @SRC_CODE_DIR@ \
|
||||
@PROJECT_SOURCE_DIR@/./README.md \
|
||||
@CMAKE_CURRENT_SOURCE_DIR@/./Output.md
|
||||
|
||||
# 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 = @PROJECT_SOURCE_DIR@/./README.md
|
||||
|
||||
# The EXCLUDE tag can be used to specify files and/or directories that should be
|
||||
# excluded from the INPUT source files. This way you can easily exclude a
|
||||
# subdirectory from a directory tree whose root is specified with the INPUT tag.
|
||||
#
|
||||
# Note that relative paths are relative to the directory from which doxygen is
|
||||
# run.
|
||||
|
||||
EXCLUDE = @PROJECT_SOURCE_DIR@/src/util/argh.h
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
@ -26,25 +78,11 @@
|
||||
|
||||
DOXYFILE_ENCODING = UTF-8
|
||||
|
||||
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
|
||||
# double-quotes, unless you are using Doxywizard) that should identify the
|
||||
# project for which the documentation is generated. This name is used in the
|
||||
# title of most generated pages and in a few other places.
|
||||
# The default value is: My Project.
|
||||
|
||||
PROJECT_NAME = POET
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER =
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
# quick idea about the purpose of the project. Keep the description short.
|
||||
|
||||
PROJECT_BRIEF =
|
||||
PROJECT_BRIEF = "A coupled reactive transport simulator"
|
||||
|
||||
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
|
||||
# in the documentation. The maximum height of the logo should not exceed 55
|
||||
@ -53,12 +91,6 @@ PROJECT_BRIEF =
|
||||
|
||||
PROJECT_LOGO =
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
|
||||
# into which the generated documentation will be written. If a relative path is
|
||||
# entered, it will be relative to the location where doxygen was started. If
|
||||
# left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = /tmp/doc
|
||||
|
||||
# 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
|
||||
@ -858,13 +890,6 @@ WARN_LOGFILE =
|
||||
# Configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The INPUT tag is used to specify the files and/or directories that contain
|
||||
# documented source files. You may enter file names like myfile.cpp or
|
||||
# directories like /usr/src/myproject. Separate the files or directories with
|
||||
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
|
||||
# Note: If this tag is empty the current directory is searched.
|
||||
|
||||
INPUT = /home/max/GFZ/POET/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
|
||||
@ -945,14 +970,6 @@ FILE_PATTERNS = *.c \
|
||||
|
||||
RECURSIVE = YES
|
||||
|
||||
# The EXCLUDE tag can be used to specify files and/or directories that should be
|
||||
# excluded from the INPUT source files. This way you can easily exclude a
|
||||
# subdirectory from a directory tree whose root is specified with the INPUT tag.
|
||||
#
|
||||
# Note that relative paths are relative to the directory from which doxygen is
|
||||
# run.
|
||||
|
||||
EXCLUDE = ../src/util/argh.h
|
||||
|
||||
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
||||
# directories that are symbolic links (a Unix file system feature) are excluded
|
||||
@ -1056,12 +1073,6 @@ FILTER_SOURCE_FILES = NO
|
||||
|
||||
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
|
||||
@ -1752,7 +1763,7 @@ EXTRA_SEARCH_MAPPINGS =
|
||||
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
|
||||
# The default value is: YES.
|
||||
|
||||
GENERATE_LATEX = YES
|
||||
GENERATE_LATEX = NO
|
||||
|
||||
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
|
||||
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
|
||||
66
docs/Output.md
Normal file
66
docs/Output.md
Normal file
@ -0,0 +1,66 @@
|
||||
# Output Files
|
||||
|
||||
POET will place all simulation data and other files inside the given
|
||||
`<OUTPUT_DIRECTORY>`. The directory will look like this:
|
||||
|
||||
``` {.example}
|
||||
.
|
||||
└── <OUTPUT_DIRECTORY>/
|
||||
├── iter000.rds
|
||||
├── iter000.dht
|
||||
├── ...
|
||||
├── iter<n>.rds
|
||||
├── iter<n>.dht
|
||||
├── setup.rds
|
||||
└── timings.rds
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
All `.rds` file can be read inside a R runtime using e.g.
|
||||
`readRDS("<FILE>")`. The following description can be given to the
|
||||
files:
|
||||
|
||||
| File | Description |
|
||||
|---------------|-------------------------------------------------------------------------------------------------------------------|
|
||||
| iter<*n*>.rds | Defines the state of the grid after *n* iteration, especially the state after transport (`T`) and chemistry (`C`) |
|
||||
| iter<*n*>.dht | DHT-snapshot of the *n* th iteration |
|
||||
| setup.rds | Summary of all simulation parameters given at startup |
|
||||
| timings.rds | Various measured timings by POET |
|
||||
|
||||
## Timings
|
||||
|
||||
POET provides built-in time measurements of (sub) routines. The
|
||||
corresponding values can be found in `<OUTPUT_DIRECTORY>/timings.rds`
|
||||
and possible to read out within a R runtime with
|
||||
`readRDS("timings.rds")`. There you will find the following values:
|
||||
|
||||
| Value | Description |
|
||||
|--------------------|----------------------------------------------------------------------------|
|
||||
| simtime | time spent in whole simulation loop without any initialization and cleanup |
|
||||
| simtime\_transport | measured time in *transport* subroutine |
|
||||
| simtime\_chemistry | measured time in *chemistry* subroutine (actual parallelized part) |
|
||||
|
||||
### chemistry subsetting
|
||||
|
||||
If running parallel there are also measured timings which are subsets of
|
||||
*simtime\_chemistry*.
|
||||
|
||||
| Value | Description |
|
||||
|----------------------------|----------------------------------------------------|
|
||||
| simtime\_workers | time spent in send/recv loop of master |
|
||||
| simtime\_chemistry\_master | sequential part of master chemistry |
|
||||
| phreeqc | measured time of each worker in PHREEQC subroutine |
|
||||
|
||||
### DHT usage {#DHT-usage}
|
||||
|
||||
If running parallel and with DHT activated two more timings and also
|
||||
some profiling about the DHT usage are given:
|
||||
|
||||
| Value | Description |
|
||||
|-----------------|---------------------------------------------------------|
|
||||
| dht\_fill\_time | time to write data to DHT |
|
||||
| dht\_get\_time | time to retreive data from DHT |
|
||||
| dh\_hits | count of data points retrieved from DHT |
|
||||
| dht\_miss | count of misses/count of data points written to DHT |
|
||||
| dht\_evictions | count of data points evicted by another write operation |
|
||||
@ -1,7 +1,8 @@
|
||||
set(SRC_CODE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "directory indicating which source code version is used")
|
||||
configure_file(poet.h.in poet.h)
|
||||
|
||||
add_executable(poet poet.cpp)
|
||||
target_include_directories(poet PUBLIC "${PROJECT_BINARY_DIR}/src")
|
||||
target_include_directories(poet PUBLIC "${PROJECT_CURRENT_BINARY_DIR}")
|
||||
target_link_libraries(poet PUBLIC POET_Model POET_Util MPI::MPI_C)
|
||||
target_compile_definitions(poet PRIVATE OMPI_SKIP_MPICXX)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user