Add the OpenFOAM source tree
10
doc/Allwmake
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
set -x
|
||||
|
||||
# fix permissions (NB: '+X' and not '+x'!)
|
||||
chmod a+rX $WM_PROJECT_DIR $WM_PROJECT_DIR/doc Doxygen
|
||||
|
||||
Doxygen/Allwmake
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
30
doc/Doxygen/Allwmake
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
cd ${0%/*} || exit 1 # run from this directory
|
||||
|
||||
[ -d "$WM_PROJECT_DIR" ] || {
|
||||
echo "Error: WM_PROJECT_DIR directory does not exist"
|
||||
echo " Check the OpenFOAM entries in your dot-files and source them."
|
||||
echo " WM_PROJECT_DIR=$WM_PROJECT_DIR"
|
||||
exit 1
|
||||
}
|
||||
|
||||
set -x
|
||||
|
||||
rm -rf latex man
|
||||
|
||||
# remove html directory in background
|
||||
mv html html-stagedRemove$$ 2> /dev/null
|
||||
rm -rf html-stagedRemove$$ >/dev/null 2>&1 &
|
||||
|
||||
# ensure that created files are readable by everyone
|
||||
umask 22
|
||||
doxygen
|
||||
|
||||
# fix permissions (NB: '+X' and not '+x'!)
|
||||
chmod -R a+rX html latex man 2>/dev/null
|
||||
|
||||
echo
|
||||
echo "Done doxygen"
|
||||
echo
|
||||
|
||||
# ----------------------------------------------------------------- end-of-file
|
||||
1831
doc/Doxygen/Doxyfile
Normal file
128
doc/Doxygen/Macros/tensorOperator.sty
Normal file
@ -0,0 +1,128 @@
|
||||
%-----------------------------------------------------------------------------
|
||||
% ========= |
|
||||
% \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
% \\ / O peration |
|
||||
% \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
% \\/ M anipulation |
|
||||
%------------------------------------------------------------------------------
|
||||
% License
|
||||
% This file is part of OpenFOAM.
|
||||
%
|
||||
% OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
% under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation, either version 3 of the License, or
|
||||
% (at your option) any later version.
|
||||
%
|
||||
% OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
% for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
%
|
||||
% LaTeX Style file
|
||||
% tensorOperator.sty
|
||||
%
|
||||
% Description
|
||||
% Standard OpenFOAM LaTeX macros for typesetting tensor algebra.
|
||||
%
|
||||
%------------------------------------------------------------------------------
|
||||
|
||||
% tensor style
|
||||
% ~~~~~~~~~~~~
|
||||
\renewcommand{\vec}[1] {\ensuremath{\mathbf #1}}
|
||||
\newcommand{\gvec}[1] {\ensuremath{\mbox{\boldmath$\bf#1$}}}
|
||||
|
||||
% products
|
||||
% ~~~~~~~~
|
||||
\newcommand{\anyprod}{\star}
|
||||
\newcommand{\cprod} {\times}
|
||||
\newcommand{\dprod} {\,{\scriptscriptstyle \stackrel{\bullet}{{}}}\,}
|
||||
\newcommand{\ddprod} {\,{\scriptscriptstyle \stackrel{\bullet}{\bullet}}\,}
|
||||
\newcommand{\tdprod} {\,{\scriptscriptstyle \stackrel{3}{\bullet}}\,}
|
||||
\newcommand{\tprod} {\,{\scriptscriptstyle \stackrel{\otimes}{{}}}\,}
|
||||
|
||||
% operations
|
||||
% ~~~~~~~~~~
|
||||
\newcommand{\adj} {\ensuremath{\operatorname{adj}}}
|
||||
\newcommand{\cof} {\ensuremath{\operatorname{cof}}}
|
||||
\newcommand{\diag} {\ensuremath{\operatorname{diag}}}
|
||||
\newcommand{\dev} {\ensuremath{\operatorname{dev}}}
|
||||
|
||||
\newcommand{\Hodge} {\ensuremath{\operatorname{\stackrel{\displaystyle \ast}{}}}}
|
||||
\newcommand{\hyd} {\ensuremath{\operatorname{hyd}}}
|
||||
\renewcommand{\max} {\ensuremath{\operatorname{max}}}
|
||||
\renewcommand{\min} {\ensuremath{\operatorname{min}}}
|
||||
\newcommand{\inv} {\ensuremath{\operatorname{inv}}}
|
||||
\newcommand{\sym} {\ensuremath{\operatorname{symm}}} % symm ?
|
||||
\newcommand{\skw} {\ensuremath{\operatorname{skew}}} % skew already defined
|
||||
\newcommand{\tr} {\ensuremath{\operatorname{tr}}}
|
||||
\newcommand{\trans}[1] {\ensuremath{#1^{\operatorname{T}}}}
|
||||
|
||||
% alternative tensor operators for hypersonics etc.
|
||||
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
\newcommand{\devs}[1] {\overset{\scriptscriptstyle\circ}{#1}}
|
||||
%\newcommand{\trans}[1] {\ensuremath{#1^{\operatorname{T}}}}
|
||||
\newcommand{\symms}[1] {\overleftrightarrow{#1}}
|
||||
\newlength{\skewslength}
|
||||
\newlength{\skewsheight}
|
||||
\newcommand{\skews}[1]{
|
||||
\settowidth{\skewslength}{#1}%
|
||||
\settoheight{\skewsheight}{#1}%
|
||||
\addtolength{\skewsheight}{0.4mm}%
|
||||
{\overleftrightarrow{#1}\hspace{-.5\skewslength}%
|
||||
\rule[\skewsheight]{.4pt}{1.4mm}
|
||||
\hspace{.5\skewslength}%
|
||||
}}
|
||||
%\newcommand{\skew}[1] {\ensuremath{#1^{\operatorname{A}}}}
|
||||
|
||||
% spatial derivatives
|
||||
% ~~~~~~~~~~~~~~~~~~~
|
||||
\newcommand{\curl}{\ensuremath{\nabla\cprod}}
|
||||
\renewcommand{\div} {\ensuremath{\nabla\dprod}}
|
||||
\newcommand{\grad}{\ensuremath{\nabla}}
|
||||
\newcommand{\laplacian}{\ensuremath{\nabla^{2}}}
|
||||
|
||||
% temporal derivatives
|
||||
% ~~~~~~~~~~~~~~~~~~~~
|
||||
\newcommand{\ddt}[1] {\ensuremath{\frac{\partial #1}{\partial t }}}
|
||||
\newcommand{\DDt}[1] {\ensuremath{\frac{D #1}{D t}}}
|
||||
\newcommand{\DpDt}[2] {\ensuremath{\frac{d_{#1} #2}{d t }}}
|
||||
\newcommand{\dsdts}[1] {\ensuremath{\frac{\partial ^2 #1}{\partial t^2}}}
|
||||
\newcommand{\rate}[1] {\ensuremath{\dot{#1}}}
|
||||
|
||||
\newcommand{\genDer}{\mathcal{L}}
|
||||
|
||||
% time average symbols
|
||||
% ~~~~~~~~~~~~~~~~~~~~
|
||||
\newcommand{\av}[1] {\ensuremath{\overline{#1}}}
|
||||
\newcommand{\corrtwo}[2] {{\dwea{\dprime{#1} \dprime{#2}}}}
|
||||
\newcommand{\curly}[1] {{\cal #1}}
|
||||
\newcommand{\dprime}[1] {\ensuremath{{#1}^{^{\prime \prime}}}}
|
||||
\newcommand{\dwea}[1] {\ensuremath{\widetilde{#1}}}
|
||||
\newcommand{\dweafluc}[1] {\ensuremath{\dprime{#1}}}
|
||||
\newcommand{\fluc}[1] {\ensuremath{#1^{\prime}}}
|
||||
|
||||
% index style
|
||||
% ~~~~~~~~~~~
|
||||
\newcommand{\veci}[2][i] {\ensuremath{#2_{#1}}}
|
||||
\newcommand{\teni}[2][ij] {\ensuremath{#2_{#1}}}
|
||||
\newcommand{\tenTi}[2][ji] {\ensuremath{#2_{#1}}}
|
||||
|
||||
% index operations
|
||||
% ~~~~~~~~~~~~~~~~
|
||||
\newcommand{\deltai}[1] {\ensuremath{\partial_{#1}}}
|
||||
|
||||
% Sub-subscripts
|
||||
% ~~~~~~~~~~~~~~
|
||||
\newcommand{\eff} {{\scriptscriptstyle e\!f\!\!f\!}}
|
||||
|
||||
% unknown use
|
||||
% ~~~~~~~~~~~
|
||||
%\font\bigtenrm=cmr12 scaled 1200
|
||||
%\newcommand{\eexp}[1]{{\hbox{$\textfont1=\bigtenrm e$}}^{\raise3pt
|
||||
%\hbox{$#1$}}}
|
||||
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
BIN
doc/Doxygen/OpenFOAMdocIcon.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
doc/Doxygen/OpenFOAMicon.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
26
doc/Doxygen/README
Normal file
@ -0,0 +1,26 @@
|
||||
Building the Doxygen help for OpenFOAM
|
||||
======================================
|
||||
|
||||
The HTML documentation of OpenFOAM can be built using the Doxygen
|
||||
software. Images in the documentation are generated using "dot", a
|
||||
program within the graphviz software package. To build the
|
||||
documentation on the Ubuntu Linux system, for example, the user should
|
||||
install both doxygen and graphviz packages, e.g. by typing in a
|
||||
terminal window:
|
||||
|
||||
sudo apt-get install doxygen graphviz
|
||||
|
||||
The Doxygen documentation will build automatically for a user that is
|
||||
configured to run OpenFOAM, i.e. has environment variables such as
|
||||
$WM_PROJECT_DIR set. The user must also ensure they have write
|
||||
permission for the directory that Doxygen writes files to.
|
||||
|
||||
The Doygen configuration file, Doxyfile, in the
|
||||
$WM_PROJECT_DIR/doc/Doxygen directory is configured to work with
|
||||
Doxygen versions 1.6.3-1.8.5.
|
||||
|
||||
|
||||
**Note**:
|
||||
For versions of Doxygen below 1.7, the final <div> in the
|
||||
_Header file (line 37) must be deleted before running Doxygen to
|
||||
produce the correctly formatted HTML files.
|
||||
22
doc/Doxygen/_Footer
Normal file
@ -0,0 +1,22 @@
|
||||
<!-- end of doxygen-generated content -->
|
||||
</div> <!-- main -->
|
||||
<div class="footer">
|
||||
<p>
|
||||
Copyright © 2011-2013
|
||||
<a href="http://www.openfoam.org/about">OpenFOAM Foundation</a>
|
||||
|
|
||||
OPENFOAM® is a registered
|
||||
<a href="http://www.openfoam.com/legal/trademark-policy.php">trademarks
|
||||
</a> of OpenCFD Ltd.
|
||||
</p>
|
||||
<p class="credits">
|
||||
Based on design by
|
||||
<a target="new" href="http://1234.info">1234.info</a>
|
||||
|
|
||||
Content generated by
|
||||
<a target="new" href="http://www.doxygen.org">doxygen</a>
|
||||
</p>
|
||||
</div> <!-- footer -->
|
||||
</div> <!-- page-container -->
|
||||
</body>
|
||||
</html>
|
||||
38
doc/Doxygen/_Header
Normal file
@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UFT-8"/>
|
||||
<title> OpenFOAM® Programmer's C++ documentation </title>
|
||||
<!-- links -->
|
||||
<link href="../OpenFOAMdocIcon.png" rel="icon" type="image/png" />
|
||||
<link href="search/search.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../css/openfoam.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javaScript" src="search/search.js"></script>
|
||||
|
||||
<!-- meta info -->
|
||||
<meta
|
||||
name="keywords"
|
||||
content="computational fluid dynamics, CFD, OpenFOAM, open source CFD, open source"
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page-container">
|
||||
<div class="header">
|
||||
<div class="header-top">
|
||||
<a class="sitelogo" href="http://www.openfoam.org" title="Home">
|
||||
<img class=left src="../css/img/OpenFOAMlogo.png">
|
||||
</a>
|
||||
<div class="sitename">
|
||||
<h1>
|
||||
<a href="http://foam.sourceforge.net/doc/Doxygen/html/"
|
||||
title="Source Guide">OpenFOAM C++ Documentation
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
</div> <!-- header-top -->
|
||||
</div> <!-- header -->
|
||||
|
||||
<div class="main">
|
||||
<div>
|
||||
<!-- begin of doxygen-generated content -->
|
||||
345
doc/Doxygen/css/cfdLayout.css
Normal file
@ -0,0 +1,345 @@
|
||||
/* OpenFOAM layout styles */
|
||||
|
||||
* {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
font-size: 62.5%;
|
||||
} /*Font-size: 1.0em = 10px when browser default size is 16px*/
|
||||
|
||||
p:after {
|
||||
content:".";
|
||||
display:block;
|
||||
height:0;
|
||||
/* clear:both */;
|
||||
visibility:hidden;
|
||||
}
|
||||
|
||||
.clear-contentunit {
|
||||
clear:both;
|
||||
width:100%;
|
||||
height:0.1em;
|
||||
border:none;
|
||||
background:rgb(210,210,210);
|
||||
color:rgb(210,210,210);
|
||||
}
|
||||
|
||||
/* page-container **************************************/
|
||||
|
||||
.page-container {
|
||||
width:100%;
|
||||
margin:0px auto;
|
||||
margin-top:10px;
|
||||
margin-bottom:10px;
|
||||
font-size:1.0em;
|
||||
}
|
||||
|
||||
.page-container:after,
|
||||
.header:after,
|
||||
.header-bottom:after,
|
||||
.header-breadcrumbs:after,
|
||||
.main:after,
|
||||
.main-navigation:after,
|
||||
.main-content:after,
|
||||
.main-content div:after,
|
||||
.main-subcontent:after
|
||||
{
|
||||
content:".";
|
||||
display:block;
|
||||
height:0;
|
||||
clear:both;
|
||||
visibility:hidden;
|
||||
}
|
||||
|
||||
/*Font-size: 1.0em = 12px when browser default size is 16px*/
|
||||
.main
|
||||
{
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
/*********************header***************************************************/
|
||||
.header {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.header-top {
|
||||
height:80px;
|
||||
border:3px solid rgb(175,175,175);
|
||||
border-bottom-width: 0;
|
||||
margin-top:10px;
|
||||
background:#d5e1f0;
|
||||
overflow:visible !important /*Firefox*/;
|
||||
overflow:hidden /*IE6*/;
|
||||
}
|
||||
|
||||
.left {margin:none; border:none; }
|
||||
.right {margin:none; border:none; position:absolute; right:35px;top:32px}
|
||||
|
||||
.header-bottom {
|
||||
border:3px solid rgb(175,175,175);
|
||||
border-top-width: 1px;
|
||||
background:rgb(225,225,225);
|
||||
}
|
||||
|
||||
/********************sitelogo *************************************************/
|
||||
.sitelogo {
|
||||
width:100%;
|
||||
height:40px;
|
||||
position:absolute;
|
||||
z-index:1;
|
||||
margin:20px 0 0 15px;
|
||||
}
|
||||
|
||||
/**************************sitename ************************************************/
|
||||
.sitename {
|
||||
width:400px;
|
||||
height:45px;
|
||||
margin:auto;
|
||||
margin-top:25px;
|
||||
overflow:visible !important /*Firefox*/;
|
||||
overflow:hidden /*IE6*/;
|
||||
}
|
||||
|
||||
.sitename h1 {
|
||||
font-weight:normal;
|
||||
font-size:240%;
|
||||
}
|
||||
|
||||
.sitename h2 {
|
||||
margin:-2px 0 0 0;
|
||||
color:rgb(125,125,125);
|
||||
font-weight:normal;
|
||||
font-size:100%;
|
||||
}
|
||||
.sitename a {
|
||||
text-decoration:none;
|
||||
color:rgb(125,125,125);
|
||||
color:#333;
|
||||
}
|
||||
.sitename a:hover {
|
||||
text-decoration:none;
|
||||
color:rgb(125,125,125);
|
||||
}
|
||||
|
||||
/*****************header-breadcrumbs ***************************************/
|
||||
.header-breadcrumbs {
|
||||
clear:both;
|
||||
width:100%;
|
||||
padding:1.0em 0 1.5em 0;
|
||||
border-left:3px solid rgb(175,175,175);
|
||||
border-right:0px solid rgb(175,175,175);
|
||||
}
|
||||
|
||||
.header-breadcrumbs ul {
|
||||
float:left;
|
||||
width:560px;
|
||||
list-style:none;
|
||||
padding:7px 0 0 3px;
|
||||
font-family:verdana,arial,sans-serif;
|
||||
}
|
||||
|
||||
.header-breadcrumbs ul li {
|
||||
display:inline;
|
||||
padding:0 0 0 5px;
|
||||
color:#323232;
|
||||
font-size:100%;
|
||||
}
|
||||
|
||||
.header-breadcrumbs ul a {
|
||||
color:rgb(70,122,167);
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
.header-breadcrumbs ul a:hover {
|
||||
color:rgb(42,90,138);
|
||||
color:#333;
|
||||
text-decoration:underline;
|
||||
}
|
||||
.header-breadcrumbs .searchform {
|
||||
float:right;
|
||||
width:285px;
|
||||
padding:0 17px 0px 0px !important /*Non-IE6*/;
|
||||
padding:0 12px 0px 0px /*IE6*/;
|
||||
}
|
||||
.header-breadcrumbs .searchform form fieldset {
|
||||
float:right;
|
||||
border:none;
|
||||
}
|
||||
.header-breadcrumbs .searchform input.field {
|
||||
width:10.0em;
|
||||
padding:0.2em 0 0.2em 0;
|
||||
border:1px solid rgb(200,200,200);
|
||||
font-family:verdana,arial,sans-serif;
|
||||
font-size:120%;
|
||||
}
|
||||
.header-breadcrumbs .searchform input.button {
|
||||
width:3.0em;
|
||||
padding:1px !important /*Non-IE6*/;
|
||||
padding:0 /*IE6*/;
|
||||
background:rgb(230,230,230);
|
||||
border:solid 1px rgb(150,150,150);
|
||||
text-align:center;
|
||||
font-family:verdana,arial,sans-serif;
|
||||
color:rgb(150,150,150);
|
||||
font-size:120%;
|
||||
}
|
||||
.header-breadcrumbs .searchform input.button:hover {
|
||||
cursor:pointer;
|
||||
border:solid 1px rgb(80,80,80);
|
||||
background:rgb(220,220,220);
|
||||
color:rgb(80,80,80);
|
||||
}
|
||||
|
||||
|
||||
/******************footer ************************************************/
|
||||
.footer {
|
||||
clear:both;
|
||||
padding:1.0em 1.0em 1.0em 1.0em;
|
||||
border:3px solid rgb(175,175,175);
|
||||
background:rgb(225,225,225);
|
||||
font-size:1.0em;
|
||||
overflow:visible !important /*Firefox*/;
|
||||
overflow:hidden /*IE6*/;
|
||||
}
|
||||
.footer p {
|
||||
line-height:1.3em;
|
||||
text-align:center;
|
||||
color:rgb(125,125,125);
|
||||
font-weight:bold;
|
||||
font-size:110%;
|
||||
}
|
||||
.footer p.credits {
|
||||
font-weight:normal;
|
||||
}
|
||||
.footer a {
|
||||
text-decoration:underline;
|
||||
color:rgb(125,125,125);
|
||||
}
|
||||
.footer a:hover {
|
||||
text-decoration:none;
|
||||
color:rgb(0,0,0);
|
||||
}
|
||||
/*
|
||||
.footer a:visited {
|
||||
color:rgb(0,0,0);
|
||||
}
|
||||
*/
|
||||
.footer:after {
|
||||
content:".";
|
||||
display:block;
|
||||
height:0;
|
||||
clear:both;
|
||||
visibility:hidden;
|
||||
}
|
||||
|
||||
/*******************main **********************************************/
|
||||
.main {
|
||||
clear:both;
|
||||
width:100% minus 2px;
|
||||
padding-bottom:30px;
|
||||
border-left: 3px solid rgb(175,175,175);
|
||||
border-right:3px solid rgb(175,175,175);
|
||||
background:transparent url(img/bg_main.gif) top left repeat-y;
|
||||
}
|
||||
.main img {
|
||||
clear:both;
|
||||
margin:3px 10px 7px 0;
|
||||
padding:1px;
|
||||
}
|
||||
.main img.center {
|
||||
clear:both;
|
||||
float:none;
|
||||
display:block;
|
||||
margin:0 auto;
|
||||
padding:1px;
|
||||
}
|
||||
.main img.right {
|
||||
clear:both;
|
||||
float:right;
|
||||
margin:3px 0 7px 10px;
|
||||
padding:1px;
|
||||
}
|
||||
|
||||
div.contents a {
|
||||
color:rgb(70,122,167);
|
||||
font-weight:bold;
|
||||
text-decoration:none;
|
||||
}
|
||||
div.contents a:hover {
|
||||
color:rgb(42,90,138);
|
||||
text-decoration:underline;
|
||||
}
|
||||
/*
|
||||
.main a:visited {
|
||||
color:rgb(42,90,138);
|
||||
}
|
||||
*/
|
||||
|
||||
.main a img {
|
||||
border:solid 1px rgb(150,150,150);
|
||||
}
|
||||
.main a:hover img {
|
||||
border:solid 1px rgb(220,220,220);
|
||||
}
|
||||
|
||||
/********************************/
|
||||
/* PRINTING and MISCELLANEOUS */
|
||||
/********************************/
|
||||
@media print {
|
||||
|
||||
.header-top {
|
||||
width:100%;
|
||||
height:80px;
|
||||
background:rgb(240,240,240);
|
||||
overflow:visible !important /*Firefox*/;
|
||||
overflow:hidden /*IE6*/;
|
||||
}
|
||||
.header-breadcrumbs {
|
||||
width:100%;
|
||||
background:transparent;
|
||||
}
|
||||
.nav2 {
|
||||
float:left;
|
||||
width:100%;
|
||||
border:none;
|
||||
background:rgb(240,240,240);
|
||||
color:rgb(75,75,75);
|
||||
font-size:1.0em;
|
||||
font-size:130%;
|
||||
} /*Color navigation bar normal mode*/
|
||||
.main {
|
||||
clear:both;
|
||||
width:100%;
|
||||
padding-bottom:30px;
|
||||
background:transparent;
|
||||
}
|
||||
.main-navigation {
|
||||
display:inline /*Fix IE floating margin bug*/;
|
||||
float:left;
|
||||
width:199px;
|
||||
border-right:1px solid rgb(200,200,200);
|
||||
border-bottom:1px solid rgb(200,200,200);
|
||||
background-color:rgb(240,240,240);
|
||||
overflow:visible !important /*Firefox*/;
|
||||
overflow:hidden /*IE*/;
|
||||
}
|
||||
.footer {
|
||||
clear:both;
|
||||
width:100%;
|
||||
height:3.7em;
|
||||
padding:1.1em 0 0;
|
||||
background:rgb(240,240,240);
|
||||
font-size:1.0em;
|
||||
overflow:visible !important /*Firefox*/;
|
||||
overflow:hidden /*IE6*/;
|
||||
}
|
||||
div.crosslinks {
|
||||
visibility:hidden;
|
||||
}
|
||||
|
||||
} /* end media print */
|
||||
|
||||
574
doc/Doxygen/css/cfdNav.css
Normal file
@ -0,0 +1,574 @@
|
||||
/* Naviation Styles */
|
||||
.nav0
|
||||
{
|
||||
width:350px;
|
||||
position:absolute;
|
||||
z-index:2;
|
||||
margin:25px 0 0 0;
|
||||
margin-left:610px !important /*Non-IE6*/;
|
||||
margin-left:613px /*IE6*/;
|
||||
}
|
||||
.nav0 ul
|
||||
{
|
||||
float:right;
|
||||
padding:0 20px 0 0;
|
||||
}
|
||||
.nav0 li
|
||||
{
|
||||
display:inline;
|
||||
list-style:none;
|
||||
}
|
||||
.nav0 li a
|
||||
{
|
||||
padding:0 0 0 3px;
|
||||
}
|
||||
.nav0 a:hover
|
||||
{
|
||||
text-decoration:none;
|
||||
}
|
||||
.nav0 a img
|
||||
{
|
||||
height:20px;
|
||||
border:none;
|
||||
}
|
||||
.nav1
|
||||
{
|
||||
width:350px;
|
||||
position:absolute;
|
||||
z-index:3;
|
||||
margin:55px 0 0 610px;
|
||||
}
|
||||
.nav1 ul
|
||||
{
|
||||
float:right;
|
||||
padding:0 15px 0 0;
|
||||
font-weight:normal;
|
||||
}
|
||||
.nav1 li
|
||||
{
|
||||
display:inline;
|
||||
list-style:none;
|
||||
}
|
||||
.nav1 li a
|
||||
{
|
||||
display:block;
|
||||
float:left;
|
||||
padding:2px 5px 2px 5px;
|
||||
color:rgb(125,125,125);
|
||||
text-decoration:none;
|
||||
font-size:110%;
|
||||
}
|
||||
.nav1 a:hover
|
||||
{
|
||||
text-decoration:none;
|
||||
color:rgb(50,50,50);
|
||||
}
|
||||
.nav1_ln
|
||||
{
|
||||
float:right;
|
||||
height:2.1em;
|
||||
width:300px;
|
||||
}
|
||||
.nav1_ln ul
|
||||
{
|
||||
float:right;
|
||||
padding:7px 15px 0 0;
|
||||
font-weight:normal;
|
||||
}
|
||||
.nav1_ln li
|
||||
{
|
||||
display:inline;
|
||||
list-style:none;
|
||||
}
|
||||
.nav1_ln li a
|
||||
{
|
||||
display:block;
|
||||
float:left;
|
||||
padding:2px 5px 2px 5px;
|
||||
color:rgb(125,125,125);
|
||||
text-decoration:none;
|
||||
font-size:110%;
|
||||
}
|
||||
.nav1_ln a:hover
|
||||
{
|
||||
text-decoration:none;
|
||||
color:rgb(50,50,50);
|
||||
}
|
||||
.nav2
|
||||
{
|
||||
white-space:nowrap /*IE hack*/;
|
||||
float:left;
|
||||
width:100%;
|
||||
background:rgb(225,225,225);
|
||||
color:rgb(100,100,100);
|
||||
font-size:130%;
|
||||
height:2.1em;
|
||||
} /*Color navigation bar normal mode*/
|
||||
.nav2 ul
|
||||
{
|
||||
list-style-type:none;
|
||||
}
|
||||
.nav2 ul li
|
||||
{
|
||||
float:left;
|
||||
z-index:auto !important /*Non-IE6*/;
|
||||
z-index:1000 /*IE6*/;
|
||||
border-right:solid 1px rgb(175,175,175);
|
||||
}
|
||||
.nav2 ul li a
|
||||
{
|
||||
float:none !important /*Non-IE6*/;
|
||||
float:left /*IE-6*/;
|
||||
display:block;
|
||||
height:2.1em;
|
||||
line-height:2.1em;
|
||||
padding:0 16px 0 16px;
|
||||
text-decoration:none;
|
||||
font-weight:normal;
|
||||
color: rgb(100,100,100);
|
||||
color:#333;
|
||||
}
|
||||
.nav2 ul li ul
|
||||
{
|
||||
display:none;
|
||||
border:none;
|
||||
}
|
||||
.nav2 ul li:hover
|
||||
{
|
||||
position:relative;
|
||||
} /*Sylvain IE hack*/
|
||||
.nav2 ul li:hover a
|
||||
{
|
||||
background-color:rgb(215,215,215);
|
||||
text-decoration:none;
|
||||
} /*Color main cells hovering mode*/
|
||||
.nav2 ul li:hover ul
|
||||
{
|
||||
display:block;
|
||||
width:12.0em;
|
||||
position:absolute;
|
||||
z-index:999;
|
||||
top:2.0em;
|
||||
margin-top:0.1em;
|
||||
left:0;
|
||||
}
|
||||
.nav2 ul li:hover ul li a
|
||||
{
|
||||
white-space:normal;
|
||||
display:block;
|
||||
width:12.0em;
|
||||
height:auto;
|
||||
line-height:1.3em;
|
||||
margin-left:-1px;
|
||||
padding:4px 16px 4px 16px;
|
||||
border-left:solid 1px rgb(175,175,175);
|
||||
border-bottom: solid 1px rgb(175,175,175);
|
||||
background-color:rgb(240,240,240);
|
||||
font-weight:normal;
|
||||
color:rgb(100,100,100);
|
||||
color:#333;
|
||||
} /*Color subcells normal mode*/
|
||||
.nav2 ul li:hover ul li a:hover
|
||||
{
|
||||
background-color:rgb(215,215,215);
|
||||
text-decoration:none;
|
||||
} /*Color subcells hovering mode*/
|
||||
.nav2 table
|
||||
{
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:-1px;
|
||||
border-collapse:collapse;
|
||||
}
|
||||
.nav2 ul li a:hover
|
||||
{
|
||||
position:relative /*Sylvain IE hack*/;
|
||||
z-index:1000 /*Sylvain IE hack*/;
|
||||
background-color:rgb(215,215,215);
|
||||
text-decoration:none;
|
||||
} /*Color main cells hovering mode*/
|
||||
.nav2 ul li a:hover ul
|
||||
{
|
||||
display:block;
|
||||
width:12.0em;
|
||||
position:absolute;
|
||||
z-index:999;
|
||||
top:2.1em;
|
||||
t\op:2.0em;
|
||||
left:0;
|
||||
marg\in-top:0.1em;
|
||||
}
|
||||
.nav2 ul li a:hover ul li a
|
||||
{
|
||||
white-space:normal;
|
||||
display:block;
|
||||
w\idth:12.0em;
|
||||
height:1px;
|
||||
line-height:1.3em;
|
||||
padding:4px 16px 4px 16px;
|
||||
border-left:solid 1px rgb(175,175,175);
|
||||
border-bottom: solid 1px rgb(175,175,175);
|
||||
background-color:rgb(240,240,240);
|
||||
font-weight:normal;
|
||||
color:rgb(50,50,50);
|
||||
} /*Color subcells normal mode*/
|
||||
.nav2 ul li a:hover ul li a:hover
|
||||
{
|
||||
background-color:rgb(215,215,215);
|
||||
text-decoration:none;
|
||||
} /*Color subcells hovering mode*/
|
||||
|
||||
/*nav3-grid ****************************************/
|
||||
.nav3-grid
|
||||
{
|
||||
width:199px;
|
||||
border-bottom:solid 1px rgb(200,200,200);
|
||||
}
|
||||
.nav3-grid dt a, .nav3-grid dt a:visited
|
||||
{
|
||||
display:block;
|
||||
min-height:2.0em /*Non-IE6*/;
|
||||
height:auto !important;
|
||||
height:2.0em /*IE6*/;
|
||||
line-height:2.0em;
|
||||
padding:0px 10px 0px 20px;
|
||||
border-top: solid 1px rgb(200,200,200);
|
||||
text-decoration:none;
|
||||
color:rgb(70,122,167);
|
||||
font-weight:bold;
|
||||
font-size:100%;
|
||||
}
|
||||
.nav3-grid dd a, .nav3-grid dd a:visited
|
||||
{
|
||||
display:block;
|
||||
min-height:1.7em /*Non-IE6*/;
|
||||
height:auto !important;
|
||||
height:1.7em /*IE6*/;
|
||||
line-height:1.7em;
|
||||
padding:0px 10px 0px 40px;
|
||||
border:none;
|
||||
font-weight:normal;
|
||||
text-decoration:none;
|
||||
color:rgb(70,122,167);
|
||||
font-size:100%;
|
||||
}
|
||||
.nav3-grid dt a:hover, .nav3-grid dd a:hover
|
||||
{
|
||||
background-color:rgb(225,225,225);
|
||||
color:rgb(42,90,138);
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
/*nav3-nobullet *********************/
|
||||
nav3-bullet
|
||||
{
|
||||
width:170px;
|
||||
margin:10px 0 0 20px;
|
||||
}
|
||||
.nav3-bullet dt a, .nav3-bullet dt a:visited
|
||||
{
|
||||
line-height:2.0em;
|
||||
padding:0 0 0 10px;
|
||||
background:url(img/bg_bullet_full_1.gif) no-repeat 0px 50%;
|
||||
text-decoration:none;
|
||||
color:rgb(70,122,167);
|
||||
font-weight:bold;
|
||||
font-size:120%;
|
||||
}
|
||||
.nav3-bullet dd a, .nav3-bullet dd a:visited
|
||||
{
|
||||
line-height:1.7em;
|
||||
margin:0 0 0 15px;
|
||||
padding:0 0 0 10px;
|
||||
background:url(img/bg_bullet_half_1.gif) no-repeat 0px 50%;
|
||||
text-decoration:none;
|
||||
color:rgb(70,122,167);
|
||||
font-weight:normal;
|
||||
font-size:120%;
|
||||
}
|
||||
.nav3-bullet dt a:hover
|
||||
{
|
||||
background:url(img/bg_bullet_full_2.gif) no-repeat 0px 50%;
|
||||
text-decoration:underline;
|
||||
color:rgb(42,90,138);
|
||||
}
|
||||
.nav3-bullet dd a:hover
|
||||
{
|
||||
background:url(img/bg_bullet_half_2.gif) no-repeat 0px 50%;
|
||||
text-decoration:underline;
|
||||
color:rgb(42,90,138);
|
||||
}
|
||||
.nav3-nobullet
|
||||
{
|
||||
width:170px;
|
||||
margin:10px 0 0 20px;
|
||||
}
|
||||
.nav3-nobullet dt a, .nav3-nobullet dt a:visited
|
||||
{
|
||||
line-height:2.0em;
|
||||
text-decoration:none;
|
||||
color:rgb(70,122,167);
|
||||
font-weight:bold;
|
||||
font-size:120%;
|
||||
}
|
||||
.nav3-nobullet dd a, .nav3-nobullet dd a:visited
|
||||
{
|
||||
line-height:1.7em;
|
||||
margin:0 0 0 15px;
|
||||
text-decoration:none;
|
||||
color:rgb(70,122,167);
|
||||
font-weight:normal;
|
||||
font-size:120%;
|
||||
}
|
||||
.nav3-nobullet dt a:hover, .nav3-nobullet dd a:hover
|
||||
{
|
||||
text-decoration:underline;
|
||||
color:rgb(42,90,138);
|
||||
}
|
||||
|
||||
div.navpath, div.summary
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*main-navigation ************************************************/
|
||||
.main-navigation .loginform
|
||||
{
|
||||
width:160px;
|
||||
margin:-10px 20px 0 20px;
|
||||
}
|
||||
.main-navigation .loginform p
|
||||
{
|
||||
clear:both;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
.main-navigation .loginform fieldset
|
||||
{
|
||||
width:160px;
|
||||
border:none;
|
||||
}
|
||||
.main-navigation .loginform label.top
|
||||
{
|
||||
float:left;
|
||||
width:125px;
|
||||
margin:0 0 2px 0;
|
||||
font-size:110%;
|
||||
}
|
||||
.main-navigation .loginform label.right
|
||||
{
|
||||
float:left;
|
||||
width:125px;
|
||||
margin:5px 0 0 0;
|
||||
padding:0 0 0 3px;
|
||||
/*IE6*/;
|
||||
font-size:110%;
|
||||
}
|
||||
.main-navigation .loginform input.field
|
||||
{
|
||||
width:158px;
|
||||
margin:0 0 5px 0;
|
||||
padding:0.1em 0 0.2em 0 !important /*Non-IE6*/;
|
||||
padding:0.2em 0 0.3em 0 /*IE6*/;
|
||||
border:solid 1px rgb(200,200,200);
|
||||
font-family:verdana,arial,sans-serif;
|
||||
font-size:110%;
|
||||
}
|
||||
.main-navigation .loginform input.checkbox
|
||||
{
|
||||
float:left;
|
||||
margin:5px 0 0 0 !important /*Non-IE6*/;
|
||||
margin:2px 0 0 -3px /*IE6*/;
|
||||
border:none;
|
||||
}
|
||||
.main-navigation .loginform input.button
|
||||
{
|
||||
float:left;
|
||||
width:5.0em;
|
||||
margin:10px 0 5px 0;
|
||||
padding:1px;
|
||||
background:rgb(230,230,230);
|
||||
border:solid 1px rgb(150,150,150);
|
||||
text-align:center;
|
||||
font-family:verdana,arial,sans-serif;
|
||||
color:rgb(150,150,150);
|
||||
font-size:110%;
|
||||
}
|
||||
.main-navigation .loginform input.button:hover
|
||||
{
|
||||
cursor:pointer;
|
||||
border:solid 1px rgb(80,80,80);
|
||||
background:rgb(220,220,220);
|
||||
color:rgb(80,80,80);
|
||||
}
|
||||
.main-navigation .searchform
|
||||
{
|
||||
width:160px;
|
||||
margin:0 20px 0 20px;
|
||||
}
|
||||
.main-navigation .searchform p
|
||||
{
|
||||
clear:both;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
.main-navigation .searchform fieldset
|
||||
{
|
||||
border:none;
|
||||
}
|
||||
.main-navigation .searchform input.field
|
||||
{
|
||||
float:left;
|
||||
width:158px;
|
||||
padding:0.1em 0 0.2em 0 !important /*Non-IE6*/;
|
||||
padding:0.2em 0 0.3em 0 /*IE6*/;
|
||||
border:1px solid rgb(200,200,200);
|
||||
font-family:verdana,arial,sans-serif;
|
||||
font-size:120%;
|
||||
}
|
||||
.main-navigation .searchform input.button
|
||||
{
|
||||
float:left;
|
||||
width:3.0em;
|
||||
margin-top: 0.5em;
|
||||
padding:1px;
|
||||
background:rgb(230,230,230);
|
||||
border:solid 1px rgb(150,150,150);
|
||||
text-align:center;
|
||||
font-family:verdana,arial,sans-serif;
|
||||
color:rgb(150,150,150);
|
||||
font-size:120%;
|
||||
}
|
||||
.main-navigation .searchform input.button:hover
|
||||
{
|
||||
cursor:pointer;
|
||||
border:solid 1px rgb(80,80,80);
|
||||
background:rgb(220,220,220);
|
||||
color:rgb(80,80,80);
|
||||
}
|
||||
.main-navigation h1.first
|
||||
{
|
||||
clear:both;
|
||||
margin:0px;
|
||||
padding:4px 20px 3px 20px;
|
||||
background-color:rgb(190,190,190);
|
||||
background-color:#89aad6;
|
||||
font-family:"trebuchet ms",arial,sans-serif;
|
||||
color:rgb(255,255,255);
|
||||
font-weight:bold;
|
||||
}
|
||||
.main-navigation h1
|
||||
{
|
||||
clear:both;
|
||||
margin:30px 0 20px 0;
|
||||
padding:4px 20px 3px 20px;
|
||||
background:rgb(190,190,190);
|
||||
background:#89aad6;
|
||||
font-family:"trebuchet ms",arial,sans-serif;
|
||||
color:rgb(255,255,255);
|
||||
font-weight:bold;
|
||||
font-size:1.2em;
|
||||
}
|
||||
.main-navigation h2
|
||||
{
|
||||
clear:both;
|
||||
margin:20px 10px 10px 20px;
|
||||
font-family:"trebuchet ms",arial,sans-serif;
|
||||
color:rgb(100,100,100);
|
||||
font-weight:bold;
|
||||
font-size:150%;
|
||||
}
|
||||
.main-navigation h3
|
||||
{
|
||||
clear:both;
|
||||
margin:10px 10px 5px 20px;
|
||||
color:rgb(80,80,80);
|
||||
font-weight:bold;
|
||||
font-size:110%;
|
||||
} /* Note: h2 not existent, to make identical to formats for main-navigation for easier exchange */
|
||||
.main-navigation p
|
||||
{
|
||||
clear:both;
|
||||
margin:0 10px 10px 20px;
|
||||
color:rgb(80,80,80);
|
||||
line-height:1.3em;
|
||||
font-size:110%;
|
||||
}
|
||||
.main-navigation p.center
|
||||
{
|
||||
text-align:center;
|
||||
}
|
||||
.main-navigation p.right
|
||||
{
|
||||
text-align:right;
|
||||
}
|
||||
.main-navigation ul
|
||||
{
|
||||
list-style:none;
|
||||
margin:0.5em 5px 1.0em 5px;
|
||||
}
|
||||
.main-navigation ul li
|
||||
{
|
||||
margin:5px 0 0.2em 2px;
|
||||
background-image:none;
|
||||
line-height:1.4em;
|
||||
font-size:90%;
|
||||
color:#467aa7;
|
||||
font-weight:normal;
|
||||
}
|
||||
.main-navigation a,
|
||||
.main-navigation ul li ul li,
|
||||
.main-navigation ul li ul li a,
|
||||
.main-navigation ul li ul li a:visited
|
||||
{
|
||||
color:#333;
|
||||
font-weight:normal;
|
||||
}
|
||||
.main-navigation ol
|
||||
{
|
||||
margin:0.5em 10px 1.0em 40px !important /*Non-IE6*/;
|
||||
margin:0.5em 10px 1.0em 45px /*IE6*/;
|
||||
}
|
||||
.main-navigation ol li
|
||||
{
|
||||
list-style-position:outside;
|
||||
margin:0 0 0.4em 0;
|
||||
font-size:110%;
|
||||
}
|
||||
|
||||
.main-navigation
|
||||
{
|
||||
font-size:14px;
|
||||
display:inline /*Fix IE floating margin bug*/;
|
||||
float:left;
|
||||
width:200px;
|
||||
height:100%;
|
||||
overflow:visible !important /*Firefox*/;
|
||||
overflow:hidden /*IE6*/;
|
||||
background:rgb(245,245,245);
|
||||
}
|
||||
|
||||
.main-navigation .round-border-topright
|
||||
{
|
||||
width:10px;
|
||||
height:10px;
|
||||
position:absolute;
|
||||
z-index:10;
|
||||
margin:0 0 0 190px;
|
||||
background:url(img/bg_corner_topright.gif) no-repeat;
|
||||
}
|
||||
|
||||
.main-navigation h2
|
||||
{
|
||||
margin: 5px 10px 5px 10px;
|
||||
}
|
||||
.main-navigation h1.first ,.main-navigation h1
|
||||
{
|
||||
background-color:#89aad6 !important;
|
||||
}
|
||||
.main-navigation
|
||||
{
|
||||
background-color:#d5e1f0 !important;
|
||||
}
|
||||
|
||||
|
||||
107
doc/Doxygen/css/doxyMod.css
Normal file
@ -0,0 +1,107 @@
|
||||
/* Modifications to standard doxygen style */
|
||||
|
||||
/* needs space between surrounding border */
|
||||
.contents {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
/* needs space between surrounding border */
|
||||
.contents ul {
|
||||
margin-left: 20px;
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
/* colour and underline to match OpenFOAM style */
|
||||
div.title
|
||||
{
|
||||
text-align: center;
|
||||
font-size: 150%;
|
||||
color: #646464;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
margin-bottom: 1em;
|
||||
border-bottom: 7px solid #E1E1E1;
|
||||
}
|
||||
|
||||
/* colour and underline to match OpenFOAM style */
|
||||
.contents h1,
|
||||
.contents h2
|
||||
{
|
||||
color: #646464;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
margin-bottom: 1em;
|
||||
border-bottom: 7px solid #E1E1E1;
|
||||
}
|
||||
|
||||
/* sub-heading as per navigation background */
|
||||
.contents h2
|
||||
{
|
||||
margin-top: 1em;
|
||||
background: rgb(240,240,240);
|
||||
}
|
||||
|
||||
|
||||
/* match overall border style */
|
||||
.contents hr
|
||||
{
|
||||
border: 2px solid rgb(175,175,175);
|
||||
margin: 1em -10px;
|
||||
}
|
||||
|
||||
|
||||
/* client-side search */
|
||||
/* #MSearchResultsWindow { } */
|
||||
|
||||
|
||||
/* table displayed in "Class List" */
|
||||
td.indexkey,
|
||||
td.indexvalue,
|
||||
tr.memlist
|
||||
{
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
.memSeparator {
|
||||
display:none;
|
||||
}
|
||||
|
||||
#searchli {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
#MSearchBox {
|
||||
margin-top: 0px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.OFTable {
|
||||
width: 100%;
|
||||
border: 1px solid rgb(175,175,175);
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
/* background-color: #F0F0F0; */
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.OFTable th {
|
||||
text-align: left;
|
||||
padding: 5px;
|
||||
border-bottom: 2px solid rgb(175,175,175);
|
||||
}
|
||||
|
||||
.OFTable td {
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
div.line,
|
||||
span.comment,
|
||||
span.keyword,
|
||||
span.preprocessor,
|
||||
span.keywordflow,
|
||||
a.code
|
||||
{
|
||||
white-space: pre-wrap;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
173
doc/Doxygen/css/doxyTabs.css
Normal file
@ -0,0 +1,173 @@
|
||||
/*
|
||||
* tabs styles, without slidingdoor graphics
|
||||
* http://www.alistapart.com/articles/slidingdoors
|
||||
*/
|
||||
|
||||
div.navigation
|
||||
{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border-bottom: 3px solid rgb(175,175,175);
|
||||
}
|
||||
|
||||
|
||||
div.tabs,
|
||||
div.tabs2,
|
||||
div.tabs3
|
||||
{
|
||||
width : 100%;
|
||||
padding-top : 5px;
|
||||
padding-bottom : 5px;
|
||||
background: rgb(240,240,240);
|
||||
border-bottom: 1px solid rgb(175,175,175);
|
||||
}
|
||||
|
||||
div.tabs ul,
|
||||
div.tabs2 ul,
|
||||
div.tabs3 ul
|
||||
{
|
||||
margin: 0px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
list-style: none;
|
||||
/* max-height: 16px; */
|
||||
}
|
||||
|
||||
|
||||
div.tabs li, div.tabs form,
|
||||
div.tabs2 li, div.tabs2 form,
|
||||
div.tabs3 li, div.tabs3 form
|
||||
{
|
||||
display : inline;
|
||||
margin : 0px;
|
||||
padding : 0px;
|
||||
}
|
||||
|
||||
div.tabs ul li,
|
||||
div.tabs2 ul li,
|
||||
div.tabs3 ul li
|
||||
{
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.tabs form,
|
||||
div.tabs2 form
|
||||
{
|
||||
padding : 0px 9px;
|
||||
}
|
||||
|
||||
div.tabs a,
|
||||
div.tabs2 a
|
||||
{
|
||||
font-size : 12px;
|
||||
font-weight : normal;
|
||||
text-decoration : none;
|
||||
border-right: 1px solid rgb(175,175,175);
|
||||
}
|
||||
|
||||
/* not needed - no image */
|
||||
div.tabs a:hover,
|
||||
div.tabs2 a:hover
|
||||
{
|
||||
background-position: 100% -150px;
|
||||
}
|
||||
|
||||
div.tabs a:link,
|
||||
div.tabs a:visited,
|
||||
div.tabs a:active,
|
||||
div.tabs a:hover,
|
||||
div.tabs2 a:link,
|
||||
div.tabs2 a:visited,
|
||||
div.tabs2 a:active,
|
||||
div.tabs2 a:hover,
|
||||
div.tabs3 a:link,
|
||||
div.tabs3 a:visited,
|
||||
div.tabs3 a:active,
|
||||
div.tabs3 a:hover
|
||||
{
|
||||
color : #000000;
|
||||
color:#555;
|
||||
}
|
||||
|
||||
div.tabs span,
|
||||
div.tabs2 span,
|
||||
div.tabs3 span
|
||||
{
|
||||
display : inline;
|
||||
padding : 0px 9px;
|
||||
white-space : nowrap;
|
||||
}
|
||||
|
||||
/* client-side search */
|
||||
div.tabs #MSearchBox,
|
||||
div.tabs2 #MSearchBox
|
||||
{
|
||||
float : right;
|
||||
background : white;
|
||||
display : inline;
|
||||
font-size : 1em;
|
||||
}
|
||||
|
||||
div.tabs #MSearchSelect,
|
||||
div.tabs2 #MSearchSelect
|
||||
{
|
||||
float : left;
|
||||
display : inline;
|
||||
font-size : 1em;
|
||||
}
|
||||
|
||||
/* old name? */
|
||||
div.tabs input,
|
||||
div.tabs2 input
|
||||
{
|
||||
float : right;
|
||||
display : inline;
|
||||
font-size : 1em;
|
||||
}
|
||||
|
||||
div.tabs td,
|
||||
div.tabs2 td
|
||||
{
|
||||
font-size : 80%;
|
||||
font-weight : bold;
|
||||
text-decoration : none;
|
||||
}
|
||||
|
||||
/* Commented backslash hack hides rule from IE5-Mac \*/
|
||||
div.tabs span { float : none; }
|
||||
/* End IE5-Mac hack */
|
||||
|
||||
/* not needed - no image */
|
||||
div.tabs a:hover span
|
||||
{
|
||||
background-position: 0% -150px;
|
||||
}
|
||||
|
||||
div.tabs li.current a,
|
||||
div.tabs2 li.current a
|
||||
{
|
||||
border-width : 0px;
|
||||
border-right: 1px solid rgb(175,175,175);
|
||||
color : #555;
|
||||
}
|
||||
|
||||
div.tabs li.current span,
|
||||
div.tabs2 li.current span
|
||||
{
|
||||
padding-bottom: 0px;
|
||||
white-space: nowrap;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.navpath
|
||||
{
|
||||
background : none;
|
||||
border : none;
|
||||
margin : 10px 0px;
|
||||
padding : 0px;
|
||||
font-size : 110%;
|
||||
text-align : center;
|
||||
}
|
||||
|
||||
561
doc/Doxygen/css/doxygen.css
Normal file
@ -0,0 +1,561 @@
|
||||
/* The standard CSS for doxygen */
|
||||
|
||||
/* set these elsewhere!! */
|
||||
/*
|
||||
body, table, div, p, dl {
|
||||
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
*/
|
||||
|
||||
/* @group Heading Levels */
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.multicol {
|
||||
-moz-column-gap: 1em;
|
||||
-webkit-column-gap: 1em;
|
||||
-moz-column-count: 3;
|
||||
-webkit-column-count: 3;
|
||||
}
|
||||
|
||||
p.startli, p.startdd, p.starttd {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
p.endli {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
p.enddd {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
p.endtd {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
caption {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
span.legend {
|
||||
font-size: 70%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h3.version {
|
||||
font-size: 90%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.qindex, div.navtab{
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #84b0c7;
|
||||
text-align: center;
|
||||
margin: 2px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
div.qindex, div.navpath {
|
||||
width: 100%;
|
||||
line-height: 140%;
|
||||
}
|
||||
|
||||
div.navtab {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
/* @group Link Styling */
|
||||
|
||||
a {
|
||||
color: #153788;
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.contents a:visited {
|
||||
color: #1b77c5;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a.qindex {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a.qindexHL {
|
||||
font-weight: bold;
|
||||
background-color: #6666cc;
|
||||
color: #ffffff;
|
||||
border: 1px double #9295C2;
|
||||
}
|
||||
|
||||
.contents a.qindexHL:visited {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
a.el {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a.elRef {
|
||||
}
|
||||
|
||||
a.code {
|
||||
color: #3030f0;;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
a.codeRef {
|
||||
color: #3030f0;;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
dl.el {
|
||||
margin-left: -1cm;
|
||||
}
|
||||
|
||||
.fragment {
|
||||
font-size: 105%;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
pre.fragment {
|
||||
border: 1px solid #CCCCCC;
|
||||
background-color: #f5f5f5;
|
||||
padding: 4px 6px;
|
||||
margin: 4px 8px 4px 2px;
|
||||
overflow: auto;
|
||||
word-wrap: break-word;
|
||||
font-size: 9pt;
|
||||
line-height: 125%;
|
||||
}
|
||||
|
||||
div.ah {
|
||||
background-color: black;
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
margin-bottom: 3px;
|
||||
margin-top: 3px
|
||||
}
|
||||
|
||||
div.groupHeader {
|
||||
margin-left: 16px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 6px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.groupText {
|
||||
margin-left: 16px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
body {
|
||||
background: white;
|
||||
color: black;
|
||||
margin-right: 20px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
td.indexkey {
|
||||
background-color: #e8eef2;
|
||||
font-weight: bold;
|
||||
border: 1px solid #CCCCCC;
|
||||
margin: 2px 0px 2px 0;
|
||||
padding: 2px 10px;
|
||||
}
|
||||
|
||||
td.indexvalue {
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #CCCCCC;
|
||||
padding: 2px 10px;
|
||||
margin: 2px 0px;
|
||||
}
|
||||
|
||||
tr.memlist {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
p.formulaDsp {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
img.formulaDsp {
|
||||
|
||||
}
|
||||
|
||||
img.formulaInl {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
div.center {
|
||||
text-align: center;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
div.center img {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
img.footer {
|
||||
border: 0px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* @group Code Colorization */
|
||||
|
||||
span.keyword {
|
||||
color: #008000;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.keywordtype {
|
||||
color: #604020;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.keywordflow {
|
||||
color: #e08000;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.comment {
|
||||
color: #800000;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.preprocessor {
|
||||
color: #806020;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.stringliteral {
|
||||
color: #002080;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.charliteral {
|
||||
color: #008080;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.vhdldigit {
|
||||
color: #ff00ff;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.vhdlchar {
|
||||
color: #000000;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.vhdlkeyword {
|
||||
color: #700070;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
span.vhdllogic {
|
||||
color: #ff0000;
|
||||
font-family: "Courier New", Courier, monospace, fixed;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
.search {
|
||||
color: #003399;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
form.search {
|
||||
margin-bottom: 0px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
input.search {
|
||||
font-size: 75%;
|
||||
color: #000080;
|
||||
font-weight: normal;
|
||||
background-color: #e8eef2;
|
||||
}
|
||||
|
||||
td.tiny {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
.dirtab {
|
||||
padding: 4px;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #84b0c7;
|
||||
}
|
||||
|
||||
th.dirtab {
|
||||
background: #e8eef2;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
hr {
|
||||
height: 0px;
|
||||
border: none;
|
||||
border-top: 1px solid #666;
|
||||
}
|
||||
|
||||
hr.footer {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
/* @group Member Descriptions */
|
||||
|
||||
.mdescLeft, .mdescRight,
|
||||
.memItemLeft, .memItemRight,
|
||||
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
|
||||
background-color: #FAFAFA;
|
||||
border: none;
|
||||
margin: 4px;
|
||||
padding: 1px 0 0 8px;
|
||||
}
|
||||
|
||||
.mdescLeft, .mdescRight {
|
||||
padding: 0px 8px 4px 8px;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.memItemLeft, .memItemRight, .memTemplParams {
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.memItemLeft, .memTemplItemLeft {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.memTemplParams {
|
||||
color: #606060;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Member Details */
|
||||
|
||||
/* Styles for detailed member documentation */
|
||||
|
||||
.memtemplate {
|
||||
font-size: 80%;
|
||||
color: #606060;
|
||||
font-weight: normal;
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.memnav {
|
||||
background-color: #e8eef2;
|
||||
border: 1px solid #84b0c7;
|
||||
text-align: center;
|
||||
margin: 2px;
|
||||
margin-right: 15px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.memitem {
|
||||
padding: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.memname {
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.memproto {
|
||||
border-top: 1px solid #84b0c7;
|
||||
border-left: 1px solid #84b0c7;
|
||||
border-right: 1px solid #84b0c7;
|
||||
padding: 0;
|
||||
background-color: #d5e1e8;
|
||||
font-weight: bold;
|
||||
/* firefox specific markup */
|
||||
background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
|
||||
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||
-moz-border-radius-topright: 8px;
|
||||
-moz-border-radius-topleft: 8px;
|
||||
/* webkit specific markup */
|
||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
-webkit-border-top-right-radius: 8px;
|
||||
-webkit-border-top-left-radius: 8px;
|
||||
|
||||
}
|
||||
|
||||
.memdoc {
|
||||
border-bottom: 1px solid #84b0c7;
|
||||
border-left: 1px solid #84b0c7;
|
||||
border-right: 1px solid #84b0c7;
|
||||
padding: 2px 5px;
|
||||
background-color: #eef3f5;
|
||||
border-top-width: 0;
|
||||
/* firefox specific markup */
|
||||
-moz-border-radius-bottomleft: 8px;
|
||||
-moz-border-radius-bottomright: 8px;
|
||||
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
|
||||
/* webkit specific markup */
|
||||
-webkit-border-bottom-left-radius: 8px;
|
||||
-webkit-border-bottom-right-radius: 8px;
|
||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.paramkey {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.paramtype {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.paramname {
|
||||
color: #602020;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.paramname em {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
/* @group Directory (tree) */
|
||||
|
||||
/* for the tree view */
|
||||
|
||||
.ftvtree {
|
||||
font-family: sans-serif;
|
||||
margin: 0.5em;
|
||||
}
|
||||
|
||||
/* these are for tree view when used as main index */
|
||||
|
||||
.directory {
|
||||
font-size: 9pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.directory h3 {
|
||||
margin: 0px;
|
||||
margin-top: 1em;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
/*
|
||||
The following two styles can be used to replace the root node title
|
||||
with an image of your choice. Simply uncomment the next two styles,
|
||||
specify the name of your image and be sure to set 'height' to the
|
||||
proper pixel height of your image.
|
||||
*/
|
||||
|
||||
/*
|
||||
.directory h3.swap {
|
||||
height: 61px;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url("yourimage.gif");
|
||||
}
|
||||
.directory h3.swap span {
|
||||
display: none;
|
||||
}
|
||||
*/
|
||||
|
||||
.directory > h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.directory p {
|
||||
margin: 0px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.directory div {
|
||||
display: none;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.directory img {
|
||||
vertical-align: -30%;
|
||||
}
|
||||
|
||||
/* these are for tree view when not used as main index */
|
||||
|
||||
.directory-alt {
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.directory-alt h3 {
|
||||
margin: 0px;
|
||||
margin-top: 1em;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.directory-alt > h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.directory-alt p {
|
||||
margin: 0px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.directory-alt div {
|
||||
display: none;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.directory-alt img {
|
||||
vertical-align: -30%;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
address {
|
||||
font-style: normal;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
table.doxtable {
|
||||
border-collapse:collapse;
|
||||
}
|
||||
|
||||
table.doxtable td, table.doxtable th {
|
||||
border: 1px solid #153788;
|
||||
padding: 3px 7px 2px;
|
||||
}
|
||||
|
||||
table.doxtable th {
|
||||
background-color: #254798;
|
||||
color: #FFFFFF;
|
||||
font-size: 110%;
|
||||
padding-bottom: 4px;
|
||||
padding-top: 5px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
BIN
doc/Doxygen/css/img/OpenFOAMlogo.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
doc/Doxygen/css/img/bg_bullet_full_1.gif
Normal file
|
After Width: | Height: | Size: 806 B |
BIN
doc/Doxygen/css/img/bg_bullet_full_2.gif
Normal file
|
After Width: | Height: | Size: 50 B |
BIN
doc/Doxygen/css/img/bg_bullet_half_1.gif
Normal file
|
After Width: | Height: | Size: 825 B |
BIN
doc/Doxygen/css/img/bg_bullet_half_2.gif
Normal file
|
After Width: | Height: | Size: 99 B |
BIN
doc/Doxygen/css/img/bg_corner_topright.gif
Normal file
|
After Width: | Height: | Size: 60 B |
BIN
doc/Doxygen/css/img/bg_head_corner_topleft_25px.gif
Normal file
|
After Width: | Height: | Size: 391 B |
BIN
doc/Doxygen/css/img/bg_head_corner_topright_25px.gif
Normal file
|
After Width: | Height: | Size: 389 B |
7
doc/Doxygen/css/openfoam.css
Normal file
@ -0,0 +1,7 @@
|
||||
/* import doxygen-specific styles */
|
||||
@import url(doxygen.css); /* standard doxygen style with very minor mods */
|
||||
@import url(doxyMod.css); /* modifications to standard doxygen style */
|
||||
@import url(doxyTabs.css); /* modified doxygen tabs style */
|
||||
@import url(cfdLayout.css); /* OpenFOAM layout styles */
|
||||
@import url(cfdNav.css); /* OpenFOAM navigation styles */
|
||||
|
||||
BIN
doc/Guides-a4/ProgrammersGuide.pdf
Normal file
BIN
doc/Guides-a4/UserGuide.pdf
Normal file
BIN
doc/Guides-usletter/ProgrammersGuide.pdf
Normal file
BIN
doc/Guides-usletter/UserGuide.pdf
Normal file
525
doc/codingStyleGuide.org
Normal file
@ -0,0 +1,525 @@
|
||||
# -*- mode: org; -*-
|
||||
#
|
||||
#+TITLE: OpenFOAM C++ style guide
|
||||
#+AUTHOR: OpenFOAM Foundation
|
||||
#+DATE: Aug 2011
|
||||
#+LINK: http://www.OpenFOAM.org
|
||||
#+OPTIONS: author:nil ^:{}
|
||||
#+STARTUP: hidestars
|
||||
#+STARTUP: odd
|
||||
|
||||
* OpenFOAM C++ style guide
|
||||
*** General
|
||||
+ 80 character lines max
|
||||
+ The normal indentation is 4 spaces per logical level.
|
||||
+ Use spaces for indentation, not tab characters.
|
||||
+ Avoid trailing whitespace.
|
||||
+ The body of control statements (eg, =if=, =else=, =while=, etc). is
|
||||
always delineated with brace brackets. A possible exception can be
|
||||
made in conjunction with =break= or =continue= as part of a control
|
||||
structure.
|
||||
+ The body of =case= statements is usually delineated with brace brackets.
|
||||
+ A fall-through =case= should be commented as such.
|
||||
|
||||
+ stream output
|
||||
+ =<<= is always four characters after the start of the stream,
|
||||
so that the =<<= symbols align, i.e.
|
||||
#+BEGIN_SRC c++
|
||||
Info<< ...
|
||||
os << ...
|
||||
#+END_SRC
|
||||
so
|
||||
#+BEGIN_SRC C++
|
||||
WarningIn("className::functionName()")
|
||||
<< "Warning message"
|
||||
#+END_SRC
|
||||
*not*
|
||||
#+BEGIN_SRC C++
|
||||
WarningIn("className::functionName()")
|
||||
<< "Warning message"
|
||||
#+END_SRC
|
||||
|
||||
+ no unnecessary class section headers, i.e. remove
|
||||
#+BEGIN_SRC C++
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
// Check
|
||||
|
||||
// Edit
|
||||
|
||||
// Write
|
||||
#+END_SRC
|
||||
if they contain nothing, even if planned for 'future use'
|
||||
|
||||
+ class titles are centred
|
||||
#+BEGIN_SRC C++
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class exampleClass Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
#+END_SRC
|
||||
|
||||
*not*
|
||||
|
||||
#+BEGIN_SRC C++
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class exampleClass Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
#+END_SRC
|
||||
|
||||
*** The /.H/ Files
|
||||
+ header file spacing
|
||||
+ Leave two empty lines between sections
|
||||
(as per functions in the /.C/ file etc)
|
||||
+ use =//- Comment= comments in header file to add descriptions to class
|
||||
data and functions do be included in the Doxygen documentation:
|
||||
+ text on the line starting with =//-= becomes the Doxygen brief
|
||||
description;
|
||||
+ text on subsequent lines becomes the Doxygen detailed description /e.g./
|
||||
#+BEGIN_SRC C++
|
||||
//- A function which returns a thing
|
||||
// This is a detailed description of the function
|
||||
// which processes stuff and returns other stuff
|
||||
// depending on things.
|
||||
thing function(stuff1, stuff2);
|
||||
#+END_SRC
|
||||
+ list entries start with =-= or =-#= for numbered lists but cannot start
|
||||
on the line immediately below the brief description so
|
||||
#+BEGIN_SRC C++
|
||||
//- Compare triFaces
|
||||
// Returns:
|
||||
// - 0: different
|
||||
// - +1: identical
|
||||
// - -1: same face, but different orientation
|
||||
static inline int compare(const triFace&, const triFace&);
|
||||
#+END_SRC
|
||||
or
|
||||
#+BEGIN_SRC C++
|
||||
//- Compare triFaces returning 0, +1 or -1
|
||||
//
|
||||
// - 0: different
|
||||
// - +1: identical
|
||||
// - -1: same face, but different orientation
|
||||
static inline int compare(const triFace&, const triFace&);
|
||||
#+END_SRC
|
||||
*not*
|
||||
#+BEGIN_SRC C++
|
||||
//- Compare triFaces returning 0, +1 or -1
|
||||
// - 0: different
|
||||
// - +1: identical
|
||||
// - -1: same face, but different orientation
|
||||
static inline int compare(const triFace&, const triFace&);
|
||||
#+END_SRC
|
||||
+ list can be nested for example
|
||||
#+BEGIN_SRC C++
|
||||
//- Search for \em name
|
||||
// in the following hierarchy:
|
||||
// -# personal settings:
|
||||
// - ~/.OpenFOAM/\<VERSION\>/
|
||||
// <em>for version-specific files</em>
|
||||
// - ~/.OpenFOAM/
|
||||
// <em>for version-independent files</em>
|
||||
// -# site-wide settings:
|
||||
// - $WM_PROJECT_INST_DIR/site/\<VERSION\>
|
||||
// <em>for version-specific files</em>
|
||||
// - $WM_PROJECT_INST_DIR/site/
|
||||
// <em>for version-independent files</em>
|
||||
// -# shipped settings:
|
||||
// - $WM_PROJECT_DIR/etc/
|
||||
//
|
||||
// \return the full path name or fileName() if the name cannot be found
|
||||
// Optionally abort if the file cannot be found
|
||||
fileName findEtcFile(const fileName&, bool mandatory=false);
|
||||
#+END_SRC
|
||||
+ for more details see the Doxygen documentation.
|
||||
+ destructor
|
||||
+ If adding a comment to the destructor -
|
||||
use =//-= and code as a normal function:
|
||||
#+BEGIN_SRC C++
|
||||
//- Destructor
|
||||
~className();
|
||||
#+END_SRC
|
||||
+ inline functions
|
||||
+ Use inline functions where appropriate in a separate /classNameI.H/
|
||||
file. Avoid cluttering the header file with function bodies.
|
||||
|
||||
*** The /.C/ Files
|
||||
+ Do not open/close namespaces in a /.C/ file
|
||||
+ Fully scope the function name, i.e.
|
||||
#+BEGIN_SRC C++
|
||||
Foam::returnType Foam::className::functionName()
|
||||
#+END_SRC
|
||||
*not*
|
||||
#+BEGIN_SRC C++
|
||||
namespace Foam
|
||||
{
|
||||
...
|
||||
returnType className::functionName()
|
||||
...
|
||||
}
|
||||
#+END_SRC
|
||||
EXCEPTION
|
||||
|
||||
When there are multiple levels of namespace, they may be used in the
|
||||
/.C/ file, i.e.
|
||||
#+BEGIN_SRC C++
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
namespace RASModels
|
||||
{
|
||||
...
|
||||
} // End namespace RASModels
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
#+END_SRC
|
||||
|
||||
+ Use two empty lines between functions
|
||||
|
||||
*** Coding Practice
|
||||
+ passing data as arguments or return values.
|
||||
+ Pass bool, label and scalar as copy, anything larger by reference.
|
||||
+ const
|
||||
+ Use everywhere it is applicable.
|
||||
+ variable initialisation using
|
||||
#+BEGIN_SRC C++
|
||||
const className& variableName = otherClass.data();
|
||||
#+END_SRC
|
||||
*not*
|
||||
#+BEGIN_SRC C++
|
||||
const className& variableName(otherClass.data());
|
||||
#+END_SRC
|
||||
+ virtual functions
|
||||
+ If a class is virtual, make all derived classes virtual.
|
||||
|
||||
*** Conditional Statements
|
||||
#+BEGIN_SRC C++
|
||||
if (condition)
|
||||
{
|
||||
code;
|
||||
}
|
||||
#+END_SRC
|
||||
OR
|
||||
#+BEGIN_SRC C++
|
||||
if
|
||||
(
|
||||
long condition
|
||||
)
|
||||
{
|
||||
code;
|
||||
}
|
||||
#+END_SRC
|
||||
*not* (no space between =if= and =(= used)
|
||||
#+BEGIN_SRC C++
|
||||
if(condition)
|
||||
{
|
||||
code;
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
*** =for= and =while= Loops
|
||||
#+BEGIN_SRC C++
|
||||
for (i = 0; i < maxI; i++)
|
||||
{
|
||||
code;
|
||||
}
|
||||
#+END_SRC
|
||||
OR
|
||||
#+BEGIN_SRC C++
|
||||
for
|
||||
(
|
||||
i = 0;
|
||||
i < maxI;
|
||||
i++
|
||||
)
|
||||
{
|
||||
code;
|
||||
}
|
||||
#+END_SRC
|
||||
*not* this (no space between =for= and =(= used)
|
||||
#+BEGIN_SRC C++
|
||||
for(i = 0; i < maxI; i++)
|
||||
{
|
||||
code;
|
||||
}
|
||||
#+END_SRC
|
||||
Note that when indexing through iterators, it is often slightly more
|
||||
efficient to use the pre-increment form. Eg, =++iter= instead of =iter++=
|
||||
|
||||
*** =forAll=, =forAllIter=, =forAllConstIter=, etc. loops
|
||||
like =for= loops, but
|
||||
#+BEGIN_SRC C++
|
||||
forAll(
|
||||
#+END_SRC
|
||||
*not*
|
||||
#+BEGIN_SRC C++
|
||||
forAll (
|
||||
#+END_SRC
|
||||
Using the =forAllIter= and =forAllConstIter= macros is generally
|
||||
advantageous - less typing, easier to find later. However, since
|
||||
they are macros, they will fail if the iterated object contains
|
||||
any commas.
|
||||
|
||||
The following will FAIL!:
|
||||
|
||||
#+BEGIN_SRC C++
|
||||
forAllIter(HashTable<labelPair, edge, Hash<edge> >, foo, iter)
|
||||
#+END_SRC
|
||||
These convenience macros are also generally avoided in other
|
||||
container classes and OpenFOAM primitive classes.
|
||||
|
||||
*** Splitting Over Multiple Lines
|
||||
***** Splitting return type and function name
|
||||
+ split initially after the function return type and left align
|
||||
+ do not put =const= onto its own line - use a split to keep it with
|
||||
the function name and arguments.
|
||||
#+BEGIN_SRC C++
|
||||
const Foam::longReturnTypeName&
|
||||
Foam::longClassName::longFunctionName const
|
||||
#+END_SRC
|
||||
*not*
|
||||
#+BEGIN_SRC C++
|
||||
const Foam::longReturnTypeName&
|
||||
Foam::longClassName::longFunctionName const
|
||||
#+END_SRC
|
||||
*nor*
|
||||
#+BEGIN_SRC C++
|
||||
const Foam::longReturnTypeName& Foam::longClassName::longFunctionName
|
||||
const
|
||||
#+END_SRC
|
||||
*nor*
|
||||
#+BEGIN_SRC C++
|
||||
const Foam::longReturnTypeName& Foam::longClassName::
|
||||
longFunctionName const
|
||||
#+END_SRC
|
||||
+ if it needs to be split again, split at the function name (leaving
|
||||
behind the preceding scoping =::=s), and again, left align, i.e.
|
||||
#+BEGIN_SRC C++
|
||||
const Foam::longReturnTypeName&
|
||||
Foam::veryveryveryverylongClassName::
|
||||
veryveryveryverylongFunctionName const
|
||||
#+END_SRC
|
||||
|
||||
***** Splitting long lines at an "="
|
||||
Indent after split
|
||||
#+BEGIN_SRC C++
|
||||
variableName =
|
||||
longClassName.longFunctionName(longArgument);
|
||||
#+END_SRC
|
||||
OR (where necessary)
|
||||
#+BEGIN_SRC C++
|
||||
variableName =
|
||||
longClassName.longFunctionName
|
||||
(
|
||||
longArgument1,
|
||||
longArgument2
|
||||
);
|
||||
#+END_SRC
|
||||
*not*
|
||||
#+BEGIN_SRC C++
|
||||
variableName =
|
||||
longClassName.longFunctionName(longArgument);
|
||||
#+END_SRC
|
||||
*nor*
|
||||
#+BEGIN_SRC C++
|
||||
variableName = longClassName.longFunctionName
|
||||
(
|
||||
longArgument1,
|
||||
longArgument2
|
||||
);
|
||||
#+END_SRC
|
||||
|
||||
*** Maths and Logic
|
||||
+ operator spacing
|
||||
#+BEGIN_SRC C++
|
||||
a + b, a - b
|
||||
a*b, a/b
|
||||
a & b, a ^ b
|
||||
a = b, a != b
|
||||
a < b, a > b, a >= b, a <= b
|
||||
a || b, a && b
|
||||
#+END_SRC
|
||||
|
||||
+ splitting formulae over several lines
|
||||
|
||||
Split and indent as per "splitting long lines at an ="
|
||||
with the operator on the lower line. Align operator so that first
|
||||
variable, function or bracket on the next line is 4 spaces indented i.e.
|
||||
#+BEGIN_SRC C++
|
||||
variableName =
|
||||
a*(a + b)
|
||||
*exp(c/d)
|
||||
*(k + t);
|
||||
#+END_SRC
|
||||
This is sometimes more legible when surrounded by extra parentheses:
|
||||
|
||||
#+BEGIN_SRC C++
|
||||
variableName =
|
||||
(
|
||||
a*(a + b)
|
||||
*exp(c/d)
|
||||
*(k + t)
|
||||
);
|
||||
#+END_SRC
|
||||
|
||||
+ splitting logical tests over several lines
|
||||
|
||||
outdent the operator so that the next variable to test is aligned with
|
||||
the four space indentation, i.e.
|
||||
#+BEGIN_SRC C++
|
||||
if
|
||||
(
|
||||
a == true
|
||||
&& b == c
|
||||
)
|
||||
#+END_SRC
|
||||
|
||||
** Documentation
|
||||
*** General
|
||||
+ For readability in the comment blocks, certain tags are used that are
|
||||
translated by pre-filtering the file before sending it to Doxygen.
|
||||
|
||||
+ The tags start in column 1, the contents follow on the next lines and
|
||||
indented by 4 spaces. The filter removes the leading 4 spaces from the
|
||||
following lines until the next tag that starts in column 1.
|
||||
|
||||
+ The 'Class' and 'Description' tags are the most important ones.
|
||||
|
||||
+ The first paragraph following the 'Description' will be used for the
|
||||
brief description, the remaining paragraphs become the detailed
|
||||
description.
|
||||
|
||||
For example,
|
||||
#+BEGIN_SRC C++
|
||||
Class
|
||||
Foam::myClass
|
||||
|
||||
Description
|
||||
A class for specifying the documentation style.
|
||||
|
||||
The class is implemented as a set of recommendations that may
|
||||
sometimes be useful.
|
||||
#+END_SRC
|
||||
|
||||
+ The class name must be qualified by its namespace, otherwise Doxygen
|
||||
will think you are documenting some other class.
|
||||
|
||||
+ If you don't have anything to say about the class (at the moment), use
|
||||
the namespace-qualified class name for the description. This aids with
|
||||
finding these under-documented classes later.
|
||||
#+BEGIN_SRC C++
|
||||
Class
|
||||
Foam::myUnderDocumentedClass
|
||||
|
||||
Description
|
||||
Foam::myUnderDocumentedClass
|
||||
#+END_SRC
|
||||
|
||||
+ Use 'Class' and 'Namespace' tags in the header files.
|
||||
The Description block then applies to documenting the class.
|
||||
|
||||
+ Use 'InClass' and 'InNamespace' in the source files.
|
||||
The Description block then applies to documenting the file itself.
|
||||
#+BEGIN_SRC C++
|
||||
InClass
|
||||
Foam::myClass
|
||||
|
||||
Description
|
||||
Implements the read and writing of files.
|
||||
#+END_SRC
|
||||
|
||||
*** Doxygen Special Commands
|
||||
Doxygen has a large number of special commands with a =\= prefix.
|
||||
|
||||
Since the filtering removes the leading spaces within the blocks, the
|
||||
Doxygen commmands can be inserted within the block without problems.
|
||||
#+BEGIN_SRC C++
|
||||
InClass
|
||||
Foam::myClass
|
||||
|
||||
Description
|
||||
Implements the read and writing of files.
|
||||
|
||||
An example input file:
|
||||
\verbatim
|
||||
patchName
|
||||
{
|
||||
type myPatchType;
|
||||
refValue 100;
|
||||
value uniform 1;
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
Within the implementation, a loop over all patches is done:
|
||||
\code
|
||||
forAll(patches, patchI)
|
||||
{
|
||||
... // some operation
|
||||
}
|
||||
\endcode
|
||||
#+END_SRC
|
||||
|
||||
*** HTML Special Commands
|
||||
Since Doxygen also handles HTML tags to a certain extent, the angle
|
||||
brackets need quoting in the documentation blocks. Non-HTML tags cause
|
||||
Doxygen to complain, but seem to work anyhow.
|
||||
|
||||
eg,
|
||||
+ The template with type =<HR>= is a bad example.
|
||||
+ The template with type =\<HR\>= is a better example.
|
||||
+ The template with type =<Type>= causes Doxygen to complain about an
|
||||
unknown html type, but it seems to work okay anyhow.
|
||||
|
||||
*** Documenting Namespaces
|
||||
+ If namespaces are explictly declared with the =Namespace()= macro,
|
||||
they should be documented there.
|
||||
|
||||
+ If the namespaces is used to hold sub-models, the namespace can be
|
||||
documented in the same file as the class with the model selector.
|
||||
eg,
|
||||
#+BEGIN_SRC C++
|
||||
documented namespace 'Foam::functionEntries' within the
|
||||
class 'Foam::functionEntry'
|
||||
#+END_SRC
|
||||
|
||||
+ If nothing else helps, find some sensible header.
|
||||
eg,
|
||||
#+BEGIN_SRC C++
|
||||
namespace 'Foam' is documented in the foamVersion.H file
|
||||
#+END_SRC
|
||||
|
||||
*** Documenting typedefs and classes defined via macros
|
||||
... not yet properly resolved
|
||||
|
||||
*** Documenting Applications
|
||||
Any number of classes might be defined by a particular application, but
|
||||
these classes will not, however, be available to other parts of
|
||||
OpenFOAM. At the moment, the sole purpuse for running Doxygen on the
|
||||
applications is to extract program usage information for the '-doc'
|
||||
option.
|
||||
|
||||
The documentation for a particular application is normally contained
|
||||
within the first comment block in a /.C/ source file. The solution is this
|
||||
to invoke a special filter for the "/applications/{solver,utilities}/"
|
||||
directories that only allows the initial comment block for the /.C/ files
|
||||
through.
|
||||
|
||||
The layout of the application documentation has not yet been finalized,
|
||||
but foamToVTK shows an initial attempt.
|
||||
|
||||
*** Orthography
|
||||
Given the origins of OpenFOAM, the British spellings (eg, neighbour and not
|
||||
neighbor) are generally favoured.
|
||||
|
||||
Both '-ize' and the '-ise' variant are found in the code comments. If
|
||||
used as a variable or class method name, it is probably better to use
|
||||
'-ize', which is considered the main form by the Oxford University
|
||||
Press. Eg,
|
||||
#+BEGIN_SRC C++
|
||||
myClass.initialize()
|
||||
#+END_SRC
|
||||
|
||||
The word "its" (possesive) vs. "it's" (colloquial for "it is" or "it has")
|
||||
seems to confuse non-native (and some native) English speakers.
|
||||
It is better to donate the extra keystrokes and write "it is" or "it has".
|
||||
Any remaining "it's" are likely an incorrect spelling of "its".
|
||||
15
doc/tools/README
Normal file
@ -0,0 +1,15 @@
|
||||
Misc. tools for finding and/or repairing common documentation problems
|
||||
See the comments in the scripts.
|
||||
|
||||
1. find-suspiciousTags
|
||||
2. fix-Class
|
||||
3. find-tinyDescription
|
||||
4. find-placeholderDescription
|
||||
5. find-retagged
|
||||
|
||||
Misc Tools
|
||||
1. find-templateInComments
|
||||
2. find-its
|
||||
3. find-junkFiles
|
||||
4. find-longlines
|
||||
|
||||
17
doc/tools/find-its
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
# -----------------------------------------------------------------------------
|
||||
# Script
|
||||
# find-its
|
||||
#
|
||||
# Description
|
||||
# Search for files with "it's"
|
||||
# This contraction (== "it is") looks too much like "its" (possesive)
|
||||
# and confuses non-native (and some native) English speakers.
|
||||
#
|
||||
# -----------------------------------------------------------------------------
|
||||
set -x
|
||||
cd $WM_PROJECT_DIR || exit 1
|
||||
|
||||
git grep -e "it's"
|
||||
|
||||
#------------------------------------------------------------------ end-of-file
|
||||
17
doc/tools/find-trailingspace
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------------------------------
|
||||
# Script
|
||||
# find-trailingspace
|
||||
#
|
||||
# Description
|
||||
# Search for files with trailing whitesapce
|
||||
#
|
||||
# -----------------------------------------------------------------------------
|
||||
set -x
|
||||
cd $WM_PROJECT_DIR || exit 1
|
||||
|
||||
tab=$'\t'
|
||||
|
||||
git grep -c -E "[ $tab]+"'$' -- $@
|
||||
|
||||
#------------------------------------------------------------------ end-of-file
|
||||