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.