diff --git a/doc/handbook/4_guidelines.tex b/doc/handbook/4_guidelines.tex index 34dab17c160ef46c32c95bb2e31a501583203873..aafaedfe13428b15b400bb6949fbf381a48179b8 100644 --- a/doc/handbook/4_guidelines.tex +++ b/doc/handbook/4_guidelines.tex @@ -24,8 +24,8 @@ Line of code 2 //!< Short comment on line of code 2 that will show in doxygen //! Short comment on the following line (line of code 3) that will show in doxygen Line of code 3 /*! - * Longer comment on line of code 4 - * with several lines of length + * Longer comment on line of code 4 + * with several lines of length * that will show in doxygen */ Line of code 4 @@ -33,18 +33,18 @@ Line of code 4 The third and fourth of the above shown options can also be used to document functions with neither method parameters nor return value.\\ For doxygen to be able to group the \textbf{files} correctly, please add before the headerguard: -\begin{lstlisting}[style=DumuxCode] +\begin{lstlisting}[style=DumuxCode] /*! * \file * \ingroup GroupName * \brief A short description of the file. */ - + #ifndef HEADERGUARD #define HEADERGUARD \end{lstlisting} For doxygen to be able to group the \textbf{classes} correctly, please add before each class: -\begin{lstlisting}[style=DumuxCode] +\begin{lstlisting}[style=DumuxCode] /*! * \ingroup GroupName * \brief A short description of the class. @@ -59,7 +59,7 @@ see the file\\ \texttt{doc/doxygen/modules.txt} from the \texttt{dumux} module.\ Please add before each \textbf{function} with method parameters or return value: \begin{lstlisting}[style=DumuxCode] /*! - * \brief A short description of the function. + * \brief A short description of the function. * * Optional detailed description of the function * over several lines. @@ -68,7 +68,7 @@ Please add before each \textbf{function} with method parameters or return value: * \return returnName Very short description of returnName */ paramType functionName(paramType paramName) -{ +{ ... return returnName } diff --git a/doc/handbook/4_parameterfiles.tex b/doc/handbook/4_parameterfiles.tex index 93cd8ab81740422633efbbb855d983623d13ab5e..fd9d0284528a855f827da67e1e3146efaaa43e12 100644 --- a/doc/handbook/4_parameterfiles.tex +++ b/doc/handbook/4_parameterfiles.tex @@ -1,71 +1,68 @@ \section{Parameters in \Dumux} \label{sc_parameterfiles} Simulation parameters can be parsed to the program via a parameter file or the command line. -A list of all available parameters is provided in the Doxygen documentation -of the file \texttt{parameterfile}, which is accessible via \texttt{Modules -> Parameters}. +A list of all available parameters is provided in the Doxygen documentation: \texttt{Parameter List}. After having run the example application from section \ref{quick-start-guide} you will get the following output at the end of the simulation run \footnote{If you did not get the output, restart the application the following way: -\texttt{./test{\_}box2p -PrintParameters true}, +\texttt{./test{\_}2p{\_}incompressible{\_}tpfa test{\_}2p.input -PrintParameters true}, this will print the parameters once your simulation is finished}: \begin{lstlisting}[style=Bash] -# Run-time specified parameters: +# Runtime-specified parameters used: [ Grid ] -File = "./grids/test_2p.dgf" -[ Implicit ] -EnableJacobianRecycling = "1" -EnablePartialReassemble = "1" +Cells = "48 32" +UpperRight = "6 4" [ Problem ] -Name = "lensbox" +EnableGravity = "true" +Name = "2p" [ SpatialParams ] -LensLowerLeftX = "1.0" -LensLowerLeftY = "2.0" -LensUpperRightX = "4.0" -LensUpperRightY = "3.0" -[ TimeManager ] +LensLowerLeft = "1.0 2.0" +LensUpperRight = "4.0 3.0" +[ TimeLoop ] DtInitial = "250" TEnd = "3000" -# DEPRECATED run-time specified parameters: -PrintParameters = "1" -# Replace by: -[ TimeManager ] -PrintParameters = "1" -# Compile-time specified parameters: + +# Default parameters used: [ Implicit ] -EnableHints = "0" -MassUpwindWeight = "1" -MaxTimeStepDivisions = "10" -MobilityUpwindWeight = "1" NumericDifferenceMethod = "1" -UseTwoPointFlux = "0" +UpwindWeight = "1.0" [ LinearSolver ] MaxIterations = "250" -PreconditionerRelaxation = "1" -ResidualReduction = "1e-06" +PreconditionerIterations = "1" +PreconditionerRelaxation = "1.0" +ResidualReduction = "1e-13" Verbosity = "0" [ Newton ] -WriteConvergence = "0" -[ Problem ] -EnableGravity = "1" -[ TimeManager ] -MaxTimeStepSize = "1.79769e+308" +EnableAbsoluteResidualCriterion = "false" +EnableResidualCriterion = "false" +EnableShiftCriterion = "true" +MaxAbsoluteResidual = "1e-5" +MaxRelativeShift = "1e-8" +MaxSteps = "18" +ResidualReduction = "1e-5" +SatisfyResidualAndShiftCriterion = "false" +TargetSteps = "10" +UseLineSearch = "false" +[ TimeLoop ] +MaxTimeStepDivisions = "10" +MaxTimeStepSize = "1e300" [ Vtk ] -AddVelocity = "0" -# UNUSED parameters: -ImportantVariable = "1" +AddProcessRank = "true" +AddVelocity = "false" + +# Unused parameters: +Grid.LowerLeft = "0 0" \end{lstlisting} A number of things can be learned: \begin{itemize} \item \emph{run-time} parameters can be changed without re-compiling - \item \emph{deprecated run-time} parameters will be removed in the next release - \item \emph{compile-time} parameters cannot be overwritten by the input file - \item \emph{unused} are not used by the simulation (maybe typo or wrong group) + \item \emph{default parameters} are set by default + \item \emph{unused} parameters are not used by the simulation (maybe typo or wrong group in input file) \end{itemize} All applications have a help message which you can read by giving \texttt{--help} as a command line argument to the application. - -For further details, please have a look for \texttt{Dune::ParameterTree} +For further details, please have a look at \texttt{Dune::ParameterTree} in the \Dune documentation. diff --git a/doc/handbook/4_restartsimulations.tex b/doc/handbook/4_restartsimulations.tex index 011a28f2a2067675e62dfd07aa855d858d6fe247..30ce43199130c08f732e92fc3fff16ff43d8272e 100644 --- a/doc/handbook/4_restartsimulations.tex +++ b/doc/handbook/4_restartsimulations.tex @@ -1,25 +1,26 @@ \section{Restart \Dumux Simulations} \label{sc_restartsimulations} +Restart is currently not available in the \DumuxVersion~release. We are working on it! -You can restart the simulation -from a specific point in time or extend the simulation beyond the originally -end of simulation. What you need is a \texttt{*.drs} file (which contains the -all necessary restart information. -Then you can simply restart a simulation via -\begin{lstlisting}[style=Bash] -./test_program -TimeManager.Restart RESTART_TIME -\end{lstlisting} -To test restart behavior, use the \texttt{test\_box1p2cni} problem -in the \texttt{test/implicit/1p2c} folder. -You get the \texttt{RESTART\_TIME} from the name of your \texttt{.drs} file. -Restarting will only work when the exact time from an existing restart file is given. -If you need more restart files, you can change the frequency -by including the function into your problem: -\begin{lstlisting}[style=DumuxCode] -// Writes a restart file every 5th time step -bool shouldWriteRestartFile() const -{ - return (this->timeManager().timeStepIndex() % 5 == 0); -} -\end{lstlisting} +% You can restart the simulation +% from a specific point in time or extend the simulation beyond the originally +% end of simulation. What you need is a \texttt{*.drs} file (which contains the +% all necessary restart information. +% Then you can simply restart a simulation via +% \begin{lstlisting}[style=Bash] +% ./test_program -TimeManager.Restart RESTART_TIME +% \end{lstlisting} +% To test restart behavior, use the \texttt{test\_box1p2cni} problem +% in the \texttt{test/implicit/1p2c} folder. +% You get the \texttt{RESTART\_TIME} from the name of your \texttt{.drs} file. +% Restarting will only work when the exact time from an existing restart file is given. +% If you need more restart files, you can change the frequency +% by including the function into your problem: +% \begin{lstlisting}[style=DumuxCode] +% // Writes a restart file every 5th time step +% bool shouldWriteRestartFile() const +% { +% return (this->timeManager().timeStepIndex() % 5 == 0); +% } +% \end{lstlisting} diff --git a/doc/handbook/4_structure.tex b/doc/handbook/4_structure.tex index 66d97a6c83b610a53490f2e7461b9e3385dfe1d5..d6275084df8e58546175cf122472458b5744e47e 100644 --- a/doc/handbook/4_structure.tex +++ b/doc/handbook/4_structure.tex @@ -6,7 +6,7 @@ \item \texttt{bin}: binaries, e.g. used for the automatic testing, postprocessing, installation \item \texttt{cmake}: the configuration options for building \Dumux \item \texttt{doc}: files necessary for the Doxygen documentation and this handbook, and various logos -\item \texttt{dumux}: the main folder, containing the source files, see \ref{fig:dumux-structure} +\item \texttt{dumux}: the main folder, containing the source files. see \ref{fig:dumux-structure} for a visualized structure. For more information on the models have a look at the Doxygen documentation. \item \texttt{test}: tests for each numerical model and some functionality. @@ -15,7 +15,7 @@ \texttt{*.cc}, the problem definition \texttt{*problem.hh}, and an input file \texttt{*.input}. If necessary, spatially dependent parameters are defined in \texttt{*spatialparameters.hh}. For more detailed descriptions of the tests, please have a look at the Doxygen documentation. -\item \texttt{tutorial}: contains the tutorials described in Chapter \ref{chp:tutorial}. +\item \texttt{tutorial}: contains the tutorials. \end{itemize} \begin{figure} @@ -53,44 +53,45 @@ \Tree [.\node[draw=dumuxYellow, ultra thick] {dumux}; - [.\node[FirstLevel] {common}; + [.\node[FirstLevel] {adaptive}; \node[ThirdLevel] { - Common files of the implicit and the sequential models: - time integration, start routine \texttt{start.hh}, the property system, ...}; + Data transfer on new grid, adaptation indicators.}; ] - [.\node[FirstLevel] {freeflow}; - [.\node[SecondLevel] {\emph{models}}; - \node[ThirdLevel] {Single-phase free flow models using Navier-Stokes - and algebraic turbulence models. - All models are discretized with the box-method.}; - ] + [.\node[FirstLevel] {assembly}; + \node[ThirdLevel] { + Matrix assembler and residual for all discretization methods: cell centered, box, staggered grid.}; ] - [.\node[FirstLevel] {geomechanics}; - [.\node[SecondLevel] {\emph{models}}; - \node[ThirdLevel] {Specific model files for coupling flow and rock mechanisms.}; + [.\node[FirstLevel] {common}; + \node[ThirdLevel] { + Common files of all models: + definition of boundary conditions, time stepping, splines, dimensionless numbers ...}; + [.\node[SecondLevel] {geometry}; + \node[ThirdLevel] {Common definitions of geometrical properties.}; + ] + [.\node[SecondLevel] {properties}; + \node[ThirdLevel] {Base properties for all models.}; ] ] - [.\node[FirstLevel] {implicit}; + [.\node[FirstLevel] {discretization}; % [.\node[SecondLevel] {\emph{models}}; - \node[ThirdLevel] {Common functionality of cell centered and box formulation: - assembling in localjacobian.hh, evaluation of partial derivative - in localresidual.hh, base classes for model and problem definition.}; + \node[ThirdLevel] {Common methods for all discretizations: variable caching, advective and diffusive fluxes, upwinding...}; % ] - [.\node[SecondLevel] {adaptive}; - \node[ThirdLevel] {Contains the methods for grid adaption.}; - ] [.\node[SecondLevel] {box}; - \node[ThirdLevel] {Specific files for the gerenal fully implicit boxmethod: - assembler, dual mesh geometry in fvelementgeometry.hh, - base classes for model and problem definition.}; + \node[ThirdLevel] {Specific files for the gerenal fully implicit box method: + specifications for advective and diffusive fluxes...}; ] [.\node[SecondLevel] {cellcentered}; - \node[ThirdLevel] {Specific files for fully implicit cell centered method: assembler, - mesh geometry in fvelementgeometry.hh, base classes for model and - problem definition.}; + \node[ThirdLevel] {Specific files for fully implicit cell centered method (mpfa and tpfa).}; ] - [.\node[SecondLevel] {cornerpoint}; - \node[ThirdLevel] {Files need for handling cornerpoint grids.}; + [.\node[SecondLevel] {staggered}; + \node[ThirdLevel] {Specific files for staggered grid.}; + ] + ] + [.\node[FirstLevel] {freeflow}; + [.\node[SecondLevel] {\emph{models}}; + \node[ThirdLevel] {Single-phase free flow models using Navier-Stokes + and algebraic turbulence models. + All models are discretized with the box-method.}; ] ] [.\node[FirstLevel] {io}; @@ -122,7 +123,7 @@ and density.}; ] [.\node[SecondLevel] {fluidmatrixint.}; - \node[ThirdLevel] {Constitutive relationships (e.g. capillary pressures, relative permeabilities}; + \node[ThirdLevel] {Constitutive relationships (e.g. capillary pressures, relative permeabilities)}; ] [.\node[SecondLevel] {fluidstates}; \node[ThirdLevel] {Fluid states are responsible for caching the thermodynamic @@ -137,16 +138,17 @@ specified in the specific files of the respective models.}; ] ] - [.\node[FirstLevel] {multidomain}; - [.\node[SecondLevel] {\emph{models}}; - \node[ThirdLevel] {Localoperators, which implement the coupling and communication - between models in different subdomains, and model specific properties.}; + [.\node[FirstLevel] {mixeddimension}; + \node[ThirdLevel] { + Mixeddimension model.}; + [.\node[SecondLevel] {embedded}; + \node[ThirdLevel] {Embedded.}; ] - [.\node[SecondLevel] {common}; - \node[ThirdLevel] {The multidomain wrappers, generic functions, and properties.}; + [.\node[SecondLevel] {facet}; + \node[ThirdLevel] {Facet.}; ] - [.\node[SecondLevel] {couplinglocalres.}; - \node[ThirdLevel] {The localresiduals extending the baselocalresiduals for coupling.}; + [.\node[SecondLevel] {glue}; + \node[ThirdLevel] {Glue.}; ] ] [.\node[FirstLevel] {nonlinear}; @@ -157,8 +159,7 @@ ] [.\node[FirstLevel] {porousmediumflow}; [.\node[SecondLevel] {\emph{models}}; - \node[ThirdLevel] {Specific model definition for porous medium flow simulations, - in both \texttt{implicit} or \texttt{sequential} formulation: + \node[ThirdLevel] {Specific definition for porous medium flow simulations for all models: implementation of equations, model specific properties and indices.}; ]