Skip to content

Commit

Permalink
Added doxygen documentation and updated links in readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
scopplestone committed Jun 24, 2021
1 parent 754fdc9 commit c623bf0
Show file tree
Hide file tree
Showing 5 changed files with 2,752 additions and 6 deletions.
16 changes: 10 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

# Welcome to PICLas

The code is licensed under the GNU General Public License V3. The licence can be found in [LICENCE](LICENCE.md) and the list of contributors in [CONTRIBUTORS](CONTRIBUTORS.md).
The code is licensed under the GNU General Public License V3.
The licence can be found in [LICENCE](LICENCE.md) and the list of contributors in [CONTRIBUTORS](CONTRIBUTORS.md).
Among other things, PICLas is a scientific project.
If you use PICLas for publications or presentations in science, please support the project by citing our publications given in [references](REFERENCE.md).

## PICLas Documentation

Expand All @@ -17,7 +20,8 @@ The documentation is a work in progress. For an installation guide please refer
7. [Tutorials](doc/userguide/060_tutorials.md)
8. [Development Guide](doc/userguide/080_cluster_guide.md)

A PDF file can be generated simply by executing *make* in the *doc/userguide/* folder. This requires `pandoc`, `pandoc-citeproc` and `LaTeX`. More information about pandoc and its installation can be found [here](https://pandoc.org/installing.html).
A PDF file can be generated simply by executing *make* in the *doc/userguide/* folder. This requires `pandoc`, `pandoc-citeproc` and `LaTeX`.
More information about pandoc and its installation can be found [here](https://pandoc.org/installing.html).

The tools are known to work with the following software versions:

Expand All @@ -31,7 +35,7 @@ For information about the regression testing see [REGGIE](REGGIE.md).

## Used libraries

PICLas uses several external libraries as well as auxilliary functions from open source projects, including:
PICLas uses several external libraries as well as auxiliary functions from open source projects, including:

* [HDF5](https://www.hdfgroup.org/)
* [MPI](http://www.mcs.anl.gov/research/projects/mpi/)
Expand All @@ -40,7 +44,7 @@ PICLas uses several external libraries as well as auxilliary functions from open

## I need help or further information:

* [IAG - Numerics Research Group](https://nrg.iag.uni-stuttgart.de/)
* [IRS - Numerical Modelling and Simulation Group](https://www.irs.uni-stuttgart.de/forschung/numerische_modellierung_und_simulation/PICLas.en.html)
* [HOPR (High Order Preprocessor)](https://hopr-project.org)
* [IAG - Numerics Research Group](https://www.iag.uni-stuttgart.de/en/working-groups/numerical-methods/)
* [IRS - Numerical Modelling and Simulation Group](https://www.irs.uni-stuttgart.de/forschung/raumtransporttechnologie/numerische_modellierung_und_simulation/)
* [HOPR (High Order Preprocessor)](https://www.hopr-project.org/index.php/Home)
* [boltzplatz - Numerical Plasma Dynamics](https://www.boltzplatz.eu)
63 changes: 63 additions & 0 deletions REFERENCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Attribution

If you use PICLas for your publications, please cite it.

For the general method please cite
```
Fasoulas, S., Munz, C.D., Pfeiffer, M., Beyer, J., Binder, T., Copplestone, S., Mirza, A., Nizenkov, P., Ortwein, P. and Reschke, W.
Combining particle-in-cell and direct simulation Monte Carlo for the simulation of reactive plasma flows.
Physics of Fluids, 31(7), (2019) p.072006.
```

For the high-order Maxwell DG method please cite
```
Munz, C.D., Auweter-Kurtz, M., Fasoulas, S., Mirza, A., Ortwein, P., Pfeiffer, M. and Stindl, T.
Coupled particle-in-cell and direct simulation Monte Carlo method for simulating reactive plasma flows.
Comptes Rendus Mécanique, 342(10-11), (2014) pp.662-670.
```

For the high-order Poisson DG method please cite
```
Pfeiffer, M., Hindenlang, F., Binder, T., Copplestone, S.M., Munz, C.D. and Fasoulas, S.
A particle-in-cell solver based on a high-order hybridizable discontinuous Galerkin spectral element method on unstructured curved meshes.
Computer Methods in Applied Mechanics and Engineering, 349, (2019) pp.149-166.
```

or use the following Bibtex files

@article{piclas_fasoulas,
title={Combining particle-in-cell and direct simulation Monte Carlo for the simulation of reactive plasma flows},
author={Fasoulas, Stefanos and Munz, C-D and Pfeiffer, Marcel and Beyer, Julian and Binder, Tilman and Copplestone, Stephen and Mirza, Asim and Nizenkov, Paul and Ortwein, Philip and Reschke, Wladimir},
journal={Physics of Fluids},
volume={31},
number={7},
pages={072006},
year={2019},
publisher={AIP Publishing LLC}
}

@article{piclas_munz,
title = {Coupled Particle-In-Cell and Direct Simulation Monte Carlo method for simulating reactive plasma flows},
journal = {Comptes Rendus Mécanique},
volume = {342},
number = {10},
pages = {662-670},
year = {2014},
note = {Theoretical and numerical approaches for Vlasov-maxwell equations},
issn = {1631-0721},
doi = {https://doi.org/10.1016/j.crme.2014.07.005},
url = {https://www.sciencedirect.com/science/article/pii/S1631072114001442},
author = {Claus-Dieter Munz and Monika Auweter-Kurtz and Stefanos Fasoulas and Asim Mirza and Philip Ortwein and Marcel Pfeiffer and Torsten Stindl},
keywords = {Particle-In-Cell, Direct Simulation Monte Carlo, Discontinuous Galerkin, High-order, Plasma physics, Boltzmann equation},
}

@article{piclas_pfeiffer,
title={A particle-in-cell solver based on a high-order hybridizable discontinuous Galerkin spectral element method on unstructured curved meshes},
author={Pfeiffer, M and Hindenlang, F and Binder, T and Copplestone, SM and Munz, C-D and Fasoulas, S},
journal={Computer Methods in Applied Mechanics and Engineering},
volume={349},
pages={149--166},
year={2019},
publisher={Elsevier}
}

194 changes: 194 additions & 0 deletions doc/doxygen/DoxygenLayout.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.8.7 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="classmembers" visible="yes" title="">
<tab type="classlist" visible="no" title="" intro=""/>
<tab type="classindex" visible="no" title=""/>
<tab type="hierarchy" visible="no" title="" intro=""/>
<tab type="classmembers" visible="no" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="no" title="" intro=""/>
<tab type="globals" visible="no" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>

<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>

<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<classes visible="yes" title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>

<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<classes visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>

<!-- Layout definition for a group page -->
<group>
<briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>

<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
</directory>
</doxygenlayout>
91 changes: 91 additions & 0 deletions doc/doxygen/builddoxy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
#!/bin/bash


EQUATION=maxwell/

#=======================================
# DO NOT CHANGE ANYTHING BELOW THIS LINE
#=======================================

cd "$(dirname "$0")" # change to directory of this script
CURDIR=`readlink -f .`
cd $CURDIR
DOXYDIR=${CURDIR##*/}
if [ "$DOXYDIR" != "doxygen" ]; then
echo "Security exit:"
echo "builddoxy.sh must be placed in a directory with name 'doxygen'!"
exit 1
fi

function deletesrc {
cd $CURDIR
rm -rf src
rm *.md
rm logo.png
#rm doc_logo.png
}

trap deletesrc EXIT

#delete old files
rm -rf doxygen
cp -r ../../src .
cp -r ../../README.md .
sed -i 's\doc/logo.png\doc_logo.png\g' README.md
cp -r ../../CONTRIBUTORS.md .
cp -r ../../LICENCE.md .
cp -r ../../REFERENCE.md .
cp -r ../../REGGIE.md .

convert -size 1769x870 ../logo.png -resize 200x55 logo.png
#cp ../logo.png doc_logo.png

#rm -rf doc
#mkdir doc
#cp -r ../userguide doc/

# delete images of build status and gpl
sed -i '3,4d' README.md

# comment INTERFACE/END INTERFACE lines and MODULE PROCEDURE lines so doxygen will create call graphs
FILELIST=`find . -name '*.f90'`
for file in $FILELIST
do
sed -i 's/END INTERFACE/!END INTERFACE/g' $file
sed -i 's/INTERFACE/!INTERFACE/g' $file
sed -i 's/MODULE PROCEDURE/!MODULE PROCEDURE/g' $file
done
# rename f90 -> F90: doxygen preprocessor is only run for these files
rename 's/\.f90$/\.F90/' $FILELIST

# delete all equation dirs and testcase dirs except the one specified above
function cleandirs {
DIRS=`ls -d */`
for dir in $DIRS; do
if [ "$dir" != "$1" ]; then #delete all dirs except $1
rm -r $dir
fi
done
}
cd src/equations
cleandirs $EQUATION
cd ../..

# run doxygen
doxygen doxyconfig > doxylog.out

# comment in interfaces in html files
cd doxygen/html/
FILELIST=`find . -name '*.html'`
for file in $FILELIST
do
sed -i 's/!END INTERFACE/END INTERFACE/g' $file
sed -i 's/!INTERFACE/INTERFACE/g' $file
sed -i 's/!MODULE PROCEDURE/MODULE PROCEDURE/g' $file
sed -i 's/\.F90/\.f90/g' $file
done

cd ../..
cp ../logo.png ./doxygen/latex/doc_logo.png
cp ../logo.png ./doxygen/html/doc_logo.png

Loading

0 comments on commit c623bf0

Please sign in to comment.