Commit cccd0503 authored by Yu Pan's avatar Yu Pan

Just add the previous work in the developer-guide, need to change the flowchart structure

parent 09658dc1
......@@ -22,10 +22,27 @@
\newcommand{\GIT}{\textit{git}}
\def\code#1{\texttt{#1}}
\newcommand\hlink{\hyperlink}
\newcommand\htarget{\hypertarget}
\newcommand\htarget{\hypertarget}%%%
\newcommand{\BM}[1]{\mbox{\boldmath $#1$}}
\newcommand{\BMB}[1]{\mbox{$\mathbb #1$}}
%Yu Pan's commands
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
% \usepackage{multicol}
% \setlength{\columnsep}{0.5cm}
\tikzset{abs1/.style={xshift=3cm,yshift=2cm}}
\usetikzlibrary{shapes.geometric,arrows}
\tikzstyle{arrow}=
[thick,->,>=stealth]
\tikzstyle{arrow1}=
[thick,dashed,->,>=stealth]
\usepackage{standalone}
\usepackage{rotating}
%end of Yu Pan's commands
\title{A Programmer's Guide to Nektar++}
......@@ -74,6 +91,7 @@
\part{Solvers} \label{part:solvers}
\input{solvers/solvers-master.tex}
\input{solvers/compressible-solver.tex}
%%
\part{Utilities} \label{part:utilities}
......
\documentclass{standalone}
\usepackage{tikz}
% create a new adjust box
\usepackage{tikzscale}
\usepackage{lscape}
\usepackage{tikz}
% use to adjust the positionS
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
\tikzset{abs1/.style={xshift=3cm,yshift=2cm}}
\usetikzlibrary{shapes.geometric,arrows}
\tikzstyle{arrow}=
[thick,->,>=stealth]
\tikzstyle{arrow1}=
[thick,dashed,->,>=stealth]
\begin{document}
\begin{tikzpicture}[scale=0.2,node distance=1cm]
\node (A)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=red!30]
{CompressibleFlowSolverSystem};
\node (B1)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=blue!20,
left = of A,
xshift=0cm,
yshift=2cm]
{EulerCFE};
\draw[arrow](B1)--($(B1.east)+(1,0)$)|-(A.west);
\node (B2)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=blue!20,
left = of A]
{NavierStokesCFE};
\draw[arrow](B2)--(A);
\node (A1)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=red!25,
below = of A,
xshift=-2cm,
yshift=0cm]
{RiemmanSolver};
\node (A2)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=red!20,
below = of A1,
xshift=0cm,
yshift=-4cm]
{CFSBndConditions};
\draw[arrow1]($(A.south)+(8cm,0)$)|-(A2.east);
\node(text9)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
right =of A2,
xshift=-1cm,
yshift=-0.5cm]
{m$\_$bndConds};
\node (A3)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=red!25,
below = of A1,
xshift=0cm,
yshift=0cm]
{DiffusionLDGNS};
\draw[arrow1](B2.south)|-(A3.west);
\node(text4)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
left =of A3,
xshift=1cm,
yshift=0.5cm]
{m$\_$diffusion};
\node (A4)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=red!25,
below = of A3,
xshift=0cm,
yshift=0cm]
{ArtificialDiffusion};
\draw[arrow1](B2.south)|-(A4.west);
\node(text5)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
left =of A4,
xshift=1cm,
yshift=0.5cm]
{m$\_$artificialdiffusion};
\node (C)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=yellow!30,
right = of A]
{AdvectionSystem};
\draw[arrow](A)--(C);
\node (C1)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=yellow!25,
below = of C]
{Advection};
\draw[arrow1]($(A.south)+(8cm,0)$)|-(C1.west);
\node(text6)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
left =of C1,
xshift=1cm,
yshift=0.5cm]
{m$\_$advObject};
\node(text7)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
left =of C1,
xshift=-1.5cm,
yshift=-0.5cm]
{m$\_$riemnn};
\draw[arrow1](A1)--(C1);
\node (C2)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=yellow!20,
below = of C1]
{Diffusion};
\draw[arrow](A3)--(C2);
\draw[arrow](A4)--($(A4.east)+(5cm,0)$)|-(C2);
\node(text8)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
left =of C2,
xshift=1cm,
yshift=0.5cm]
{m$\_$diffusion};
\node (C3)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=yellow!20,
below = of C2]
{forcing};
\draw[arrow1]($(A.south)+(8cm,0)$)|-(C3.west);
\node(text9)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
left =of C3,
xshift=1cm,
yshift=0.5cm]
{m$\_$forcing};
\node (D1)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=orange!30,
right = of C]
{UnsteadySystem};
\draw[arrow](C)--(D1);
\node (D2)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=orange!35,
above = of D1]
{EquationSystem};
\draw[arrow](D1)--(D2);
\node (D3)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=orange!20,
below = of D1]
{TimeIntegrationScheme};
\draw[arrow1](D3)--(D1);
\node (D4)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=purple!20,
below = of D3]
{Explist};
%\draw[arrow](D4)--(D5);
\draw[arrow1](D2)--($(D2.east)+(6cm,0)$)--($(D4.east)+(6cm,0)$)--(D4);
\node(text1)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
right =of D1]
{m$\_$explist};
\node(text2)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
below =of text1,
yshift=1cm]
{m$\_$base};
\node(text3)
[
minimum width=2cm,
minimum height=1cm,
text centered,
fill opacity=1,
below =of text2,
yshift=1cm]
{m$\_$fields};
\draw[line width=0.25mm, blue](-40cm,-50cm)--(75cm,-50cm);
\draw[line width=0.25mm, blue](-40cm,20cm)--(75cm,20cm);
\draw[line width=0.25mm, blue](-40cm,-50cm)--(-40cm,20cm);
\draw[line width=0.25mm, blue](75cm,-50cm)--(75cm,20cm);
\draw[line width=0.25mm, blue,dashed](15cm,-50cm)--(15cm,20cm);
\node (text10) at (-15,-52) {\textbf{Solver}};
\node (text11) at (45,-52) {\textbf{Library}};
% \draw[line width=0.2mm, blue](-50cm,-50cm)--(80cm,-50cm);
% \draw[line width=0.2mm, blue](-50cm,-50cm)--(80cm,-50cm);
\end{tikzpicture}
\end{document}
\documentclass{standalone}
\usepackage{tikz}
% create a new adjust box
\usepackage{tikzscale}
\usepackage{lscape}
\usepackage{tikz}
% use to adjust the positionS
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
\tikzset{abs1/.style={xshift=3cm,yshift=2cm}}
\usetikzlibrary{shapes.geometric,arrows}
\tikzstyle{arrow}=
[thick,->,>=stealth]
\begin{document}
\begin{tikzpicture}[scale=0.2,node distance=2cm]
\node (A)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=red!30]
{CompressibleFlowSolver::drv$->$GetDriverFactory};
\node (B)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=blue!20,
below of=A,
xshift=0cm,
yshift=0cm]
{Initialize the driver\\eg. DriverStandard::v$\_$InitObject};
\draw[arrow](A)--(B);
\node (C)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=yellow!20,
below of=B,
xshift=0cm,
yshift=0cm]
{eg. NavierStokesCFE::v$\_$InitObject};
\draw[arrow](B)--(C);
\node (D_1)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=green!20,
below of=C,
xshift=-5cm,
yshift=0.5cm]
{CompressibleFlowSystem::v$\_$InitObject};
\draw[arrow]($(C.south)+(15cm,0)$)|-(D_1);
\node (D_2)
[rectangle,
rounded corners,
minimum width=5cm,
minimum height=1cm,
text width=5cm,
text centered,
draw=black,
fill=green!20,
below of=C,
xshift=3cm,
yshift=-1cm]
{m$\_$diffusion$->$InitObject};
\draw[arrow]($(C.south)+(15cm,0)$)--(D_2);
\node (E_1)
[rectangle,
rounded corners,
minimum width=6cm,
minimum height=1cm,
text width=6cm,
text centered,
draw=black,
fill=teal!20,
below of=D_1,
xshift=-1cm,
yshift=0cm]
{AdvectionSystem::v$\_$InitObject};
\draw[arrow]($(D_1.south)+(-5cm,0)$)--(E_1);
\node (E_2)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=teal!20,
below of=D_2,
xshift=0cm,
yshift=0cm]
{Specific CFS advection-related object\\eg. RiemannSolver::v$\_$InitObject};
\draw[arrow]($(D_1.south)+(-5cm,-2cm)$)--($(D_1.south)+(15cm,-2cm)$)--++(0,-2cm)|-(E_2.west);
% \draw[arrow](D_1)--(E_2);
\node (E_3)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=teal!20,
below of=E_2,
xshift=0cm,
yshift=0cm]
{Specific CFS boundary-related object m$\_$bndConds};
\draw[arrow]($(D_1.south)+(-5cm,-2cm)$)--($(D_1.south)+(15cm,-2cm)$)--++(0,-2cm)|-(E_3.west);
% \draw[arrow](D_1)--(E_3);
\node (F)
[rectangle,
rounded corners,
minimum width=6cm,
minimum height=1cm,
text width=6cm,
text centered,
draw=black,
fill=orange!20,
below of=E_1,
xshift=0cm,
yshift=0cm]
{UnsteadySystem::v$\_$InitObject};
\draw[arrow](E_1)--(F);
\node (G_1)
[rectangle,
rounded corners,
minimum width=6cm,
minimum height=1cm,
text width=6cm,
text centered,
draw=black,
fill=purple!20,
below of=F,
xshift=0cm,
yshift=-2cm]
{EquationSystem::v$\_$InitObject};
\draw[arrow](F)--(G_1);
\node (G_2)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=purple!20,
below of=F,
xshift=8cm,
yshift=-1cm]
{TimeIntegrationSystem::v$\_$InitObject};
\draw[arrow](F)|-(G_2)node[midway,xshift=2cm,yshift=0.3cm]{If unsteady};
\node (H)
[rectangle,
rounded corners,
minimum width=7cm,
minimum height=1cm,
text width=7cm,
text centered,
draw=black,
fill=lime!20,
below of=G_1,
xshift=0cm,
yshift=0cm]
{BoundaryConditions::v$\_$InitObject};
\draw[arrow](G_1)--(H);
\end{tikzpicture}
\end{document}
\ No newline at end of file
\documentclass{standalone}
\usepackage{tikz}
% create a new adjust box
\usepackage{tikzscale}
\usepackage{lscape}
\usepackage{tikz}
% use to adjust the positionS
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
\tikzset{abs1/.style={xshift=3cm,yshift=2cm}}
\usetikzlibrary{shapes.geometric,arrows}
\tikzstyle{arrow}=
[thick,->,>=stealth]
\begin{document}
\begin{tikzpicture}[scale=0.2,node distance=2cm]
\node (A)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=red!30]
{CompressibleFlowSolver::drv$->$Execute};
\node (B)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=blue!20,
below of=A,
xshift=0cm,
yshift=0cm]
{Do Initialization, eg. DriverStandard::v$\_$Execute: $m\_equ[0]->DoInitialise$};
\draw[arrow](A)--(B);
\node (C)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=yellow!20,
below of=B,
xshift=0cm,
yshift=0cm]
{UnsteadySystem::v$\_$DoInitialise};
\draw[arrow](B)--(C);
\node (D_1)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=green!20,
below of=C,
xshift=-5cm,
yshift=0cm]
{EquationSystem::SetBoundaryConditions};
\draw[arrow](C)|-(D_1);
\node (D_2)
[rectangle,
rounded corners,
minimum width=10cm,
minimum height=1cm,
text width=10cm,
text centered,
draw=black,
fill=green!20,
below of=C,
xshift=0cm,
yshift=-2cm]
{CompressibleFlowSystem::v$\_$SetInitialConditions};
\draw[arrow](C)--(D_2);
\node (E_1)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=teal!20,
below of=D_2,
xshift=0cm,
yshift=0cm]
{EquationSystem::v$\_$SetInitialConditions};
\draw[arrow](D_2)--(E_1);
\end{tikzpicture}
\end{document}
\ No newline at end of file
\documentclass{standalone}
\usepackage{tikz}
% create a new adjust box
\usepackage{tikzscale}
\usepackage{lscape}
\usepackage{tikz}
% use to adjust the positionS
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
\tikzset{abs1/.style={xshift=3cm,yshift=2cm}}
\usetikzlibrary{shapes.geometric,arrows}
\tikzstyle{arrow}=
[thick,->,>=stealth]
\begin{document}
\begin{tikzpicture}[scale=0.2,node distance=2cm]
\node (A)
[rectangle,
rounded corners,
minimum width=3cm,
minimum height=1cm,
text centered,
draw=black,
fill=red!30]
{CompressibleFlowSolver::drv$->$Execute};
\node (B)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=blue!20,
below of=A,
xshift=0cm,
yshift=0cm]
{CompressibleFlowSystem::DoOdeRhs};
\draw[arrow](A)--(B);
\node (C)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=yellow!20,
below of=B,
xshift=0cm,
yshift=0cm]
{CompressibleFlowSystem::DoAdvection};
\draw[arrow](B)--(C);
\node (D)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=orange!20,
below of=C,
xshift=0cm,
yshift=0cm]
{Advection::Advect()$\{v\_Advect\}$};
\draw[arrow](C)--(D);
\node (E)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=teal!20,
below of=D,
xshift=0cm,
yshift=0cm]
{eg. AdvectionWeakDG::v$\_$Advect};
\draw[arrow](D)--(E);
\node (F_1)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=green!20,
below of=E,
xshift=0cm,
yshift=0cm]
{Get advection flux through\\ CompressibleFlowSystem::GetFluxVector: \\m$\_$fluxVector};
% {m$\_$riemann$->$Solve};
\draw[arrow]($(E.south)$)--++(0,-2cm)-|($(F_1.west)+(-2cm,0)$)--(F_1.west);
% \draw[arrow](E)--(F_1);
\node (F_2)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=green!20,
below of=F_1,
xshift=0cm,
yshift=0cm]
% {Get advection flux through\\ CompressibleFlowSystem::GetFluxVector: \\m$\_$fluxVector};
{fields$[i]->$IProductWRTDerivBase};
\draw[arrow]($(E.south)$)--++(0,-2cm)-|($(F_2.west)+(-2cm,0)$)--(F_2.west);
% \draw[arrow](E)--(F_2);
\node (F_3)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=green!20,
below of=F_2,
xshift=0cm,
yshift=0cm]
% {fields$[i]->$IProductWRTDerivBase};
{Solve flux at element BC: m$\_$riemann$->$Solve};
\draw[arrow]($(E.south)$)--++(0,-2cm)-|($(F_3.west)+(-2cm,0)$)--(F_3.west);
% \draw[arrow](E)--(F_3);
\node (F_4)
[rectangle,
rounded corners,
minimum width=8cm,
minimum height=1cm,
text width=8cm,
text centered,
draw=black,
fill=green!20,
below of=F_3,
xshift=0cm,
yshift=0cm]
{fields$[i]->$AddTraceIntegral};
\draw[arrow]($(E.south)$)--++(0,-2cm)-|($(F_4.west)+(-2cm,0)$)--(F_4.west);
\end{tikzpicture}
\end{document}
\ No newline at end of file
\documentclass{standalone}
\usepackage{tikz}
% create a new adjust box
\usepackage{tikzscale}
\usepackage{lscape}
\usepackage{tikz}