Mercurial > hg > cfcfd3
changeset 895:21f3c3f22703
Eilmer3 documentation: selection of stepping scheme.
Also added a script to use the gcc-4.6.3 compiler to build the code on Matt's
RHEL6 workstation.
author | Peter Jacobs <peterj@mech.uq.edu.au> |
---|---|
date | Sat, 13 Apr 2013 17:46:25 +0100 |
parents | 3cbd185fc2af |
children | 30de0f357a35 |
files | app/eilmer3/build/make_for_gnu46.sh app/eilmer3/source/e3prep.py doc/sphinx/getting-started.rst examples/eilmer3/user-guide/user-input-script.tex |
diffstat | 4 files changed, 35 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/eilmer3/build/make_for_gnu46.sh Sat Apr 13 17:46:25 2013 +0100 @@ -0,0 +1,9 @@ +#!/bin/bash +# script to set the compiler environment variables and then build. +# Usage: +# $ ./make_for_gnu46.sh +# $ ./make_for_gnu46.sh install + +export OMPI_CC=gcc-4.6 +export OMPI_CXX=g++-4.6 +make TARGET=for_openmpi $@
--- a/app/eilmer3/source/e3prep.py Sat Apr 13 16:42:09 2013 +0100 +++ b/app/eilmer3/source/e3prep.py Sat Apr 13 17:46:25 2013 +0100 @@ -314,8 +314,9 @@ Select 1 for low-order (i.e. no) reconstruction. Select 2 for a higer-order (limited quadratic) reconstruction. * gasdynamic_update_scheme: (string) one of "euler", "pc", "predictor-corrector", - "midpoint", "rk3" - * t_order: (int 1 or 2) Specifies the form of time stepping scheme [deprecated]. + "midpoint", "classic-rk3", "tvd-rk3", "denman-rk3" + * t_order: [deprecated, use gasdynamic_update_scheme instead] + (int 1 or 2) Specifies the form of time stepping scheme. Select 1 for Euler stepping. Select 2 for predictor-corrector stepping. * stringent_cfl: (0/1) Set to 1 to get a very strict CFL check.
--- a/doc/sphinx/getting-started.rst Sat Apr 13 16:42:09 2013 +0100 +++ b/doc/sphinx/getting-started.rst Sat Apr 13 17:46:25 2013 +0100 @@ -118,6 +118,14 @@ #. tcl-dev (if you want to build IMOC) #. maxima (to run the Method-of-Manufactured-Solutions test case for Eilmer3) +Compiler versions +----------------- +Since March 2013, we have started using some of the C++11 features +such as range-based for loops and initializer expressions. +Because of this you will need a suitable C++ compiler. +For the GNU compiler collection, versions 4.6.3 and 4.8.0 are suitable. +Clang/LLVM versions 3.2 and later are also good. + Using the codes on MS-Windows ----------------------------- The codes assemble most conveniently on a Linux/Unix-like environment.
--- a/examples/eilmer3/user-guide/user-input-script.tex Sat Apr 13 16:42:09 2013 +0100 +++ b/examples/eilmer3/user-guide/user-input-script.tex Sat Apr 13 17:46:25 2013 +0100 @@ -1513,11 +1513,17 @@ default value of -1.0 indicates that we want the code to work it out. \item \texttt{dt\_therm}: default value -1.0. \item \texttt{gasdynamic\_update\_scheme}\ddag: one of: ``euler'', ``pc'', ``predictor-corrector'', - ``midpoint'', ``rk3''. Default value is ``predictor-corrector''. - Note that ``pc'' is equivalent. - If you want time-accurate solutions, use predictor-corrector stepping, - otherwise, Euler stepping is half the computational expense - (but you may get less accuracy and the code will not be as robust). + ``midpoint'', ``classic-rk3'', ``tvd-rk3'', ``denman-rk3''. + Default value is ``predictor-corrector''. + Note that ``pc'' is equivalent to ``predictor-corrector''. + If you want time-accurate solutions, use a two- or three-stage stepping scheme, + otherwise, Euler stepping has less computational expense + but you may get less accuracy and the code will not be as robust for the same CFL value. + For example the shock front in the Sod shock tube example is quite noisy for Euler + stepping at CFL=0.85 but is quite neat with any of the two- or three-stage stepping schemes + at the same value of CFL. + The midpoint and predictor-corrector schemes produce a tidy shock up to CFL = 1.0 + and the rk3 schemes still look tidy up to CFL = 1.2. \item \texttt{fixed\_time\_step}\ddag: 1=do not change time step from that specified, 0=allow time step size to be determined from cell conditions and cfl number, default value 0. \item \texttt{cfl}\ddag: ratio of the smallest signal time to the actual time step, @@ -1581,6 +1587,10 @@ \begin{itemize} \item \texttt{viscous\_flag}: 1=viscous terms are active, 0=inviscid simulation, default value 0. +\item \texttt{separate\_update\_for\_viscous\_flag}\ddag: 1=the update + for the viscous transport terms are done separately to the convective terms, + 0=the viscous-term updates are initegrated with the explicit update of the convective terms, + default value 0. \item \texttt{viscous\_delay}: the time (in seconds) to wait before applying the viscous terms. This might come in handy when trying to start blunt-body simulations.