Commit a2471c8f authored by David Moxey's avatar David Moxey

Update user guide

parent b25185e3
Subproject commit 8f8ed6f96bad562bedd8c242a4dc247e605ca20d
Subproject commit 7c88d86e78a8908720b971d71ce8b5aafdd5eb92
......@@ -43,6 +43,8 @@ $ \dfrac{\partial u}{\partial t} + \mathbf{V}\nabla u = f$ &
\inltt{UnsteadyAdvection} & All & Continuous/Discontinuous \\
$\dfrac{\partial u}{\partial t} = \epsilon \nabla^2 u$ &
\inltt{UnsteadyDiffusion} & All & Continuous/Discontinuous \\
$\dfrac{\partial u}{\partial t} = \epsilon \nabla^2 u + R(u)$ &
\inltt{UnsteadyReactionDiffusion} & All & Continuous \\
$\dfrac{\partial u}{\partial t} + \mathbf{V}\nabla u = \epsilon \nabla^2 u$ &
\inltt{UnsteadyAdvectionDiffusion} & All & Continuous/Discontinuous \\
$\dfrac{\partial u}{\partial t} + u\nabla u = 0$ &
......@@ -82,6 +84,7 @@ The solver info are listed below:
\midrule
\inltt{UnsteadyAdvection} & \checkmark & & &\\
\inltt{UnsteadyDiffusion} & \checkmark & \checkmark & &\\
\inltt{UnsteadyReactionDiffusion} & & & \checkmark &\\
\inltt{UnsteadyAdvectionDiffusion} & & & \checkmark &\\
\inltt{UnsteadyInviscidBurger} & \checkmark & & &\\
\bottomrule
......@@ -552,5 +555,57 @@ streamwise direction, as shown in Fig.~\ref{f:adrsolver:masstransport}.
\end{center}
\end{figure}
\subsection{Unsteady reaction-diffusion systems}
Reaction-diffusion systems are prevalent in a number of areas relating to the
modelling of various physical phenomena, and are particularly prevalent in the
study of chemical interactions and pattern formation. The ADRSolver supports the
solution of a single-variable system
\[
\frac{\partial u}{\partial t} = \epsilon\nabla^2{u}{x} + R(u)
\]
where the diffusion coefficient $\epsilon$ and reaction term $R(u)$ are defined
using the session file.
\subsubsection{Numerical restrictions}
The reaction-diffusion system is only supported in a selected configuration,
which is mostly defined inside the \inltt{SOLVERINFO} block:
\begin{itemize}
\item use of a continuous Galerkin discretisation;
\item use an implicit-explicit (IMEX) timestepping scheme, such as
\inltt{IMEXOrder3};
\end{itemize}
This naturally leads to the following \inltt{SOLVERINFO} configuration:
\begin{lstlisting}[style=XMLStyle]
<SOLVERINFO>
<I PROPERTY="EQTYPE" VALUE="UnsteadyReactionDiffusion" />
<I PROPERTY="Projection" VALUE="Continuous" />
<I PROPERTY="DiffusionAdvancement" VALUE="Implicit" />
<I PROPERTY="TimeIntegrationMethod" VALUE="IMEXOrder3" />
</SOLVERINFO>
\end{lstlisting}
Further to this, the reaction term $R(u)$ is imposed by the definition of a body
forcing function. For example, the reaction term $R(u) = 0.1u$ may be defined
using the function:
\begin{lstlisting}[style=XMLStyle]
<!-- Body force to enforce reaction term -->
<FUNCTION NAME="BodyForce">
<E VAR="u" EVARS="u" VALUE="0.1*u" />
</FUNCTION>
\end{lstlisting}
Note in particular the use of the \inltt{EVARS} (equation variables) attribute,
which permits the definition of this function in terms of the scalar variable
$u$. This function should be used together with an appropriate \inltt{FORCING}
block (as described in section~\ref{sec:xml:forcing}):
\begin{lstlisting}[style=XMLStyle]
<FORCING>
<FORCE TYPE="Body">
<BODYFORCE> BodyForce </BODYFORCE>
</FORCE>
</FORCING>
\end{lstlisting}
An example of a simple unsteady reaction-diffusion problem can be found in the
\inltt{Tests} directory in the session file \inltt{ReactionDiffusion2D.xml}.
......@@ -557,9 +557,9 @@ three-dimensional incompressible Navier-Stokes simulation, this produces an FLD
file with the variables \inltt{u}, \inltt{v}, \inltt{w} and \inltt{p}. If we
wanted to use this velocity field as input for an advection velocity, the
advection-diffusion-reaction solver expects the variables \inltt{Vx}, \inltt{Vy}
and \inltt{Vz}.
We can manually specify this mapping by adding a colon to the
and \inltt{Vz}. We can manually specify this mapping by adding a colon to the
filename, indicating the variable names in the target file that align with the
desired function variable names. This gives a definition such as:
\begin{lstlisting}[style=XMLStyle]
<FUNCTION NAME="AdvectionVelocity">
......@@ -570,8 +570,9 @@ We can manually specify this mapping by adding a colon to the
There are some caveats with this syntax:
\begin{itemize}
\item You must specify the same number of fields for both the variable, and
after the colon. For example, the following is not valid.
\item The same number of fields must be defined for both the \inltt{VAR}
attribute and in the comma-separated list after the colon. For example, the
following is not valid:
\begin{lstlisting}[style=XMLStyle,gobble=4]
<FUNCTION NAME="AdvectionVelocity">
<F VAR="Vx,Vy,Vz" FILE="file.fld:u" />
......
\section{Forcing}
\label{sec:xml:forcing}
An optional section of the file allows forcing functions to be defined. These are enclosed in the
\inltt{FORCING} tag. The forcing type is enclosed within the \inltt{FORCE} tag and expressed in the file as:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment