[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203

Stephane Popinet popinet at users.sf.net
Fri May 15 02:55:36 UTC 2009


The following commit has been merged in the upstream branch:
commit 936651d2eed44bf23868279b5d659fa2fb6559e4
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Tue Jul 22 11:06:05 2008 +1000

    Axisymmetric advection
    
    darcs-hash:20080722010605-d4795-8d0db92c409d4d211c0635fc68eb350569a35334.gz

diff --git a/doc/figures/axi.tm b/doc/figures/axi.tm
index aebc376..80a46ba 100644
--- a/doc/figures/axi.tm
+++ b/doc/figures/axi.tm
@@ -1,4 +1,4 @@
-<TeXmacs|1.0.6.10>
+<TeXmacs|1.0.6.11>
 
 <style|article>
 
@@ -6,13 +6,13 @@
   The incompressible Navier--Stokes equations in cylindrical coordinates are
 
   <\eqnarray*>
-    <tformat|<table|<row|<cell|>|<cell|<frac|\<partial\>v<rsub|r>|\<partial\>t>+<frac|1|r>*<frac|\<partial\>(r*v<rsub|r><rsup|2>)|\<partial\>r>+<frac|\<partial\>(v<rsub|r*>*v<rsub|z>)|\<partial\>z>=-<frac|\<partial\>\<phi\>|\<partial\>r>+<frac|1|r>*<frac|\<partial\>(r*S<rsub|rr>)|\<partial\>r>+<frac|\<partial\>S<rsub|zr>|\<partial\>z>-<frac|S<rsub|\<theta\>\<theta\>>|r>,>|<cell|<eq-number><label|momr>>>|<row|<cell|>|<cell|<frac|\<partial\>v<rsub|z>|\<partial\>t>+<frac|1|r>*<frac|\<partial\>(r*v<rsub|r>*v<rsub|z>)|\<partial\>r>+<frac|\<partial\>(v<rsup|2><rsub|z>)|\<partial\>z>=-<frac|\<partial\>\<phi\>|\<partial\>z>+<frac|1|r>*<frac|\<partial\>(r*S<rsub|zr>)|\<partial\>r>+<frac|\<partial\>S<rsub|zz>|\<partial\>z>,>|<cell|<eq-number><label|momz>>>|<row|<cell|>|<cell|<frac|1|r>*<frac|\<partial\>(r*v<rsub|r>)|\<partial\>r>+<frac|\<partial\>v<rsub|z>|\<partial\>z>=0,>|<cell|<eq-number><label|continuity>>>>>
+    <tformat|<table|<row|<cell|>|<cell|\<partial\><rsub|t>v<rsub|r>+<frac|1|r>*\<partial\><rsub|r>(r*v<rsub|r><rsup|2>)+\<partial\><rsub|z>(v<rsub|r*>*v<rsub|z>)=-\<partial\><rsub|r>\<phi\>+<frac|1|r>*\<partial\><rsub|r>(r*S<rsub|rr>)+\<partial\><rsub|z>S<rsub|zr>-<frac|S<rsub|\<theta\>\<theta\>>|r>,>|<cell|<eq-number><label|momr>>>|<row|<cell|>|<cell|\<partial\><rsub|t>v<rsub|z>+<frac|1|r>*\<partial\><rsub|r>(r*v<rsub|r>*v<rsub|z>)+\<partial\><rsub|z>(v<rsup|2><rsub|z>)=-\<partial\><rsub|z>\<phi\>+<frac|1|r>*\<partial\><rsub|r>(r*S<rsub|zr>)+\<partial\><rsub|z>S<rsub|zz>,>|<cell|<eq-number><label|momz>>>|<row|<cell|>|<cell|<frac|1|r>*\<partial\><rsub|r>(r*v<rsub|r>)+\<partial\><rsub|z>v<rsub|z>=0,>|<cell|<eq-number><label|continuity>>>>>
   </eqnarray*>
 
   with <math|\<phi\>=p/\<rho\>> and the stress tensor
 
   <\eqnarray*>
-    <tformat|<table|<row|<cell|S<rsub|rr>>|<cell|=>|<cell|2*\<nu\>*<frac|\<partial\>v<rsub|r>|\<partial\>r>,>>|<row|<cell|S<rsub|\<theta\>\<theta\>>>|<cell|=>|<cell|2*\<nu\>*<frac|v<rsub|r>|r>,>>|<row|<cell|S<rsub|zz>>|<cell|=>|<cell|2*\<nu\>*<frac|\<partial\>v<rsub|z>|\<partial\>z>,>>|<row|<cell|S<rsub|zr>>|<cell|=>|<cell|\<nu\>*<left|(><frac|\<partial\>v<rsub|z>|\<partial\>r>+<frac|\<partial\>v<rsub|r>|\<partial\>z><right|)>.>>>>
+    <tformat|<table|<row|<cell|S<rsub|rr>>|<cell|=>|<cell|2*\<nu\>*\<partial\><rsub|r>v<rsub|r>,>>|<row|<cell|S<rsub|\<theta\>\<theta\>>>|<cell|=>|<cell|2*\<nu\>*<frac|v<rsub|r>|r>,>>|<row|<cell|S<rsub|zz>>|<cell|=>|<cell|2*\<nu\>*\<partial\><rsub|z>v<rsub|z>,>>|<row|<cell|S<rsub|zr>>|<cell|=>|<cell|\<nu\>*<left|(>\<partial\><rsub|r>v<rsub|z>+\<partial\><rsub|z>v<rsub|r><right|)>.>>>>
   </eqnarray*>
 
   Considering a control volume <math|\<Omega\>> with boundary
@@ -90,9 +90,11 @@
   (<reference|continuity>) then gives
 
   <\eqnarray*>
-    <tformat|<table|<row|<cell|v<rsup|n+1/2><rsub|r>=v<rsub|r>+<frac|h|2>*\<partial\><rsub|r>v<rsub|r><rsup|n>+<frac|\<Delta\>t|2>*<left|(>-<frac|1|r>*<frac|\<partial\>(r*v<rsub|r><rsup|2>)|\<partial\>r>-<frac|\<partial\>(v<rsub|r*>*v<rsub|z>)|\<partial\>z>+src<rsup|n><left|)>>|<cell|>|<cell|>>>>
+    <tformat|<table|<row|<cell|v<rsup|n+1/2><rsub|r>=v<rsup|n><rsub|r>+<frac|1|2>*(h*-v<rsub|r>*\<Delta\>t)*\<partial\><rsub|r>v<rsub|r><rsup|n>+<frac|\<Delta\>t|2>*(-v<rsup|n><rsub|z>*\<partial\><rsub|z>v<rsup|n><rsub|r*>+src<rsup|n>),>|<cell|>|<cell|>>|<row|<cell|v<rsup|n+1/2><rsub|z>=v<rsub|z><rsup|n>+<frac|1|2>*(h-v<rsub|z>*\<Delta\>t)*\<partial\><rsub|z>v<rsub|z><rsup|n>+<frac|\<Delta\>t|2>*<left|(>-v<rsup|n><rsub|r>*\<partial\><rsub|r>v<rsup|n><rsub|z>+src<rsup|n><right|)>,>|<cell|>|<cell|>>>>
   </eqnarray*>
 
+  which is the same as in the two-dimensional case.
+
   \;
 </body>
 
@@ -104,4 +106,14 @@
     <associate|momz|<tuple|2|?>>
     <associate|mon|<tuple|?|?>>
   </collection>
-</references>
\ No newline at end of file
+</references>
+
+<\auxiliary>
+  <\collection>
+    <\associate|toc>
+      <with|par-left|<quote|3fn>|1<space|2spc>Advection term
+      <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+      <no-break><pageref|auto-1>>
+    </associate>
+  </collection>
+</auxiliary>
\ No newline at end of file
diff --git a/src/advection.c b/src/advection.c
index ff07584..fdeb426 100644
--- a/src/advection.c
+++ b/src/advection.c
@@ -813,12 +813,10 @@ void gfs_advection_update (GSList * merged, const GfsAdvectionParams * par)
   if (merged->next == NULL) { /* cell is not merged */
     FttCell * cell = merged->data;
 
+    g_assert (!is_small (cell));
+
+#if 0 /* D. Calhoun approach (fixme: does not use gfs_domain_cell_fraction()) */
     if (GFS_IS_MIXED (cell)) {
-#if 1
-      g_assert (!is_small (cell));
-      GFS_VARIABLE (cell, par->v->i) += 
-	GFS_VARIABLE (cell, par->fv->i)/GFS_STATE (cell)->solid->a;
-#else /* D. Calhoun approach */
       FttDirection d;
       gdouble mins = G_MAXDOUBLE;
       GfsSolidVector * solid = GFS_STATE (cell)->solid;
@@ -829,18 +827,19 @@ void gfs_advection_update (GSList * merged, const GfsAdvectionParams * par)
 #if 0
 fprintf (stderr, "%g %g %g\n",
 	 solid->a, mins, 
-	 GFS_VARIABLE (cell, par->fv)/(mins*solid->a));
+	 GFS_VALUE (cell, par->fv)/(mins*solid->a));
 #endif
       if (mins*solid->a > 0.01)
-	GFS_VARIABLE (cell, par->v->i) += 
-	  GFS_VARIABLE (cell, par->fv->i)/(mins*solid->a);
+	GFS_VALUE (cell, par->v) += GFS_VALUE (cell, par->fv)/(mins*solid->a);
       else
-	GFS_VARIABLE (cell, par->v->i) += 100.*GFS_VARIABLE (cell, par->fv->i);
-      g_assert (GFS_VARIABLE (cell, par->v->i) < 10.);
-#endif
+	GFS_VALUE (cell, par->v) += 100.*GFS_VALUE (cell, par->fv);
+      g_assert (GFS_VALUE (cell, par->v) < 10.);
     }
     else
-      GFS_VARIABLE (cell, par->v->i) += GFS_VARIABLE (cell, par->fv->i);
+#endif
+
+      GFS_VALUE (cell, par->v) +=
+	GFS_VALUE (cell, par->fv)/gfs_domain_cell_fraction (par->v->domain, cell);
   }
   else if (par->average) {
     /* average value */
@@ -850,11 +849,10 @@ fprintf (stderr, "%g %g %g\n",
     while (i) {
       FttCell * cell = i->data;
       gdouble vol = ftt_cell_volume (cell);
-      gdouble a = GFS_IS_MIXED (cell) ? GFS_STATE (cell)->solid->a : 1.;
+      gdouble a = gfs_domain_cell_fraction (par->v->domain, cell);
       
       total_vol += vol*a;
-      w += vol*(a*GFS_VARIABLE (cell, par->v->i) + 
-		GFS_VARIABLE (cell, par->fv->i));
+      w += vol*(a*GFS_VALUE (cell, par->v) + GFS_VALUE (cell, par->fv));
       i = i->next;
     }
     w /= total_vol;
@@ -863,7 +861,7 @@ fprintf (stderr, "%g %g %g\n",
     while (i) {
       FttCell * cell = i->data;
 
-      GFS_VARIABLE (cell, par->v->i) = w;
+      GFS_VALUE (cell, par->v) = w;
       i = i->next;
     }
   }
@@ -875,14 +873,15 @@ fprintf (stderr, "%g %g %g\n",
       FttCell * cell = i->data;
       gdouble vol = ftt_cell_volume (cell);
       gdouble a = GFS_IS_MIXED (cell) ? GFS_STATE (cell)->solid->a : 1.;
+      gdouble f = gfs_domain_cell_fraction (par->v->domain, cell);
 
-      total_vol += vol*a;
+      total_vol += vol*f;
       if (a < SMALL) {
-	GFS_VARIABLE (cell, par->v->i) += GFS_VARIABLE (cell, par->fv->i)/SMALL;
-	w += vol*GFS_VARIABLE (cell, par->fv->i)*(1. - a/SMALL);
+	GFS_VALUE (cell, par->v) += GFS_VALUE (cell, par->fv)/(SMALL*f/a);
+	w += vol*GFS_VALUE (cell, par->fv)*(1. - a/SMALL);
       }
       else
-	GFS_VARIABLE (cell, par->v->i) += GFS_VARIABLE (cell, par->fv->i)/a;
+	GFS_VALUE (cell, par->v) += GFS_VALUE (cell, par->fv)/f;
 
       i = i->next;
     }
@@ -893,7 +892,7 @@ fprintf (stderr, "%g %g %g\n",
       FttCell * cell = i->data;
       /* fixme: small cells should be excluded here?? 
 	 (with corresponding modification in total_vol) */
-      GFS_VARIABLE (cell, par->v->i) += w;
+      GFS_VALUE (cell, par->v) += w;
       i = i->next;
     }
   }
diff --git a/src/domain.h b/src/domain.h
index 72f5fe9..cf01164 100644
--- a/src/domain.h
+++ b/src/domain.h
@@ -74,6 +74,7 @@ struct _GfsDomainClass {
 
   void    (* post_read)     (GfsDomain *, GtsFile * fp);
   gdouble (* face_fraction) (const GfsDomain *, const FttCellFace *);
+  gdouble (* cell_fraction) (const GfsDomain *, const FttCell *);
 };
 
 #define GFS_DOMAIN(obj)            GTS_OBJECT_CAST (obj,\
@@ -330,6 +331,23 @@ gdouble gfs_domain_face_fraction_right (const GfsDomain * domain, const FttCellF
   return f;
 }
 
+/**
+ * gfs_domain_cell_fraction:
+ * @domain; a #GfsDomain.
+ * @cell: a #FttCell.
+ *
+ * Returns: the volume fraction of @cell taking into account any
+ * orthogonal mapping of @domain.
+ */
+static inline
+gdouble gfs_domain_cell_fraction (const GfsDomain * domain, const FttCell * cell)
+{
+  gdouble a = GFS_IS_MIXED (cell) ? GFS_STATE (cell)->solid->a : 1.;
+  if (GFS_DOMAIN_CLASS (GTS_OBJECT (domain)->klass)->cell_fraction)
+    a *= (* GFS_DOMAIN_CLASS (GTS_OBJECT (domain)->klass)->cell_fraction) (domain, cell);
+  return a;
+}
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/simulation.c b/src/simulation.c
index d135c25..fb42aef 100644
--- a/src/simulation.c
+++ b/src/simulation.c
@@ -1799,10 +1799,18 @@ static gdouble axi_face_fraction (const GfsDomain * domain, const FttCellFace *
   return p.y;
 }
 
+static gdouble axi_cell_fraction (const GfsDomain * domain, const FttCell * cell)
+{
+  FttVector p;
+  gfs_cell_cm (cell, &p);
+  return p.y;
+}
+
 static void axi_class_init (GfsSimulationClass * klass)
 {
   GTS_OBJECT_CLASS (klass)->read = axi_read;
   GFS_DOMAIN_CLASS (klass)->face_fraction = axi_face_fraction;
+  GFS_DOMAIN_CLASS (klass)->cell_fraction = axi_cell_fraction;
 }
 
 GfsSimulationClass * gfs_axi_class (void)
diff --git a/src/vof.c b/src/vof.c
index 7358b3d..ab3f48e 100644
--- a/src/vof.c
+++ b/src/vof.c
@@ -1321,27 +1321,27 @@ static void vof_flux (FttCellFace * face, VofParms * p)
     ftt_face_pos (face, &p);
     g_warning ("CFL (%g) at (%g,%g,%g) is larger than 0.5!", un, p.x, p.y, p.z);
   }
-  un *= GFS_FACE_FRACTION (face);
+  un *= gfs_domain_face_fraction (p->par->fv->domain, face);
 
   gdouble flux = GFS_STATE (face->cell)->f[face->d].v*un;
   switch (ftt_face_type (face)) {
   case FTT_FINE_FINE: {
     if (un < 0.)
       flux = GFS_STATE (face->neighbor)->f[FTT_OPPOSITE_DIRECTION (face->d)].v*un;
-    GFS_VARIABLE (face->neighbor, p->par->fv->i) += flux;
-    GFS_VARIABLE (face->neighbor, p->vpar.fv->i) += un;
+    GFS_VALUE (face->neighbor, p->par->fv) += flux;
+    GFS_VALUE (face->neighbor, p->vpar.fv) += un;
     break;
   }
   case FTT_FINE_COARSE: {
-    GFS_VARIABLE (face->neighbor, p->par->fv->i) += flux/FTT_CELLS;
-    GFS_VARIABLE (face->neighbor, p->vpar.fv->i) += un/FTT_CELLS;
+    GFS_VALUE (face->neighbor, p->par->fv) += flux/FTT_CELLS;
+    GFS_VALUE (face->neighbor, p->vpar.fv) += un/FTT_CELLS;
     break;
   }
   default:
     g_assert_not_reached ();
   }
-  GFS_VARIABLE (face->cell, p->par->fv->i) -= flux;
-  GFS_VARIABLE (face->cell, p->vpar.fv->i) -= un;
+  GFS_VALUE (face->cell, p->par->fv) -= flux;
+  GFS_VALUE (face->cell, p->vpar.fv) -= un;
 }
 
 static void initialize_dV (FttCell * cell, GfsVariable * dV)
diff --git a/test/Makefile.am b/test/Makefile.am
index 232b650..f437610 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -10,6 +10,7 @@ TESTDIRS = \
 	periodic \
 	merging \
 	axi \
+	axiadvection \
 	lid \
 	poiseuille \
 	couette \
diff --git a/test/axiadvection/axi.sh b/test/axiadvection/axi.sh
new file mode 100644
index 0000000..f143a97
--- /dev/null
+++ b/test/axiadvection/axi.sh
@@ -0,0 +1,47 @@
+if ! $donotrun; then
+    gerris2D axiadvection.gfs | gfsview-batch2D -s vof.gfv > vof.gnu
+fi
+
+if cat <<EOF | gnuplot ; then :
+    set term postscript eps color lw 3 solid 20
+    set output 'vof.eps'
+    set xlabel 'z'
+    set ylabel 'r'
+    unset key
+    set xtics -0.5,.25,0.5
+    set size ratio -1
+    plot [-0.5:0.5][0:1]'vof.gnu' u 1:2 w l, 'vectors.gnu' u 1:2 w l
+EOF
+else
+    exit 1
+fi
+
+if awk '
+BEGIN { min = 1000.; max = -1000.; }{ 
+  if ($5 < min) min = $5; 
+  if ($5 > max) max = $5; 
+}
+END {
+  e = 2.*(max - min)/(max + min);
+  print "VOF:", e;
+  if (e > 5e-4)
+    exit (1);
+}' < srt; then :
+else
+    exit 1
+fi
+
+if awk '
+BEGIN { min = 1000.; max = -1000.; }{ 
+  if ($5 < min) min = $5; 
+  if ($5 > max) max = $5; 
+}
+END {
+  e = 2.*(max - min)/(max + min);
+  print "Standard:", e;
+  if (e > 2e-6)
+    exit (1);
+}' < srt1; then :
+else
+    exit 1
+fi
diff --git a/test/axiadvection/axiadvection.gfs b/test/axiadvection/axiadvection.gfs
new file mode 100644
index 0000000..35f4879
--- /dev/null
+++ b/test/axiadvection/axiadvection.gfs
@@ -0,0 +1,53 @@
+# Title: Mass conservation
+#
+# Description:
+#
+# A standard and a VOF tracer are advected by an axisymmetric
+# flow. The initial interface is a torus which is then advected by the
+# flow illustrated in Figure \ref{vof}. As the torus is flattened
+# against the right-hand-side wall, its cross-sectional surface area
+# decreases but the volume should remain constant. This is indeed the
+# case to within 0.05\% for the VOF tracer and $2\times 10^{-4}$\% for
+# the standard tracer.
+#
+# \begin{figure}[htbp]
+# \caption{\label{vof}VOF interface (red) and velocity field (green).}
+# \begin{center}
+# \includegraphics[width=0.8\hsize]{vof.eps}
+# \end{center}
+# \end{figure}
+#
+# Author: St\'ephane Popinet
+# Command: sh axi.sh
+# Version: 1.3.0
+# Required files: axi.sh vectors.gfv vof.gfv
+# Generated files: vof.eps
+#
+1 0 GfsAxi GfsBox GfsGEdge {} {
+    Time { end = 1.3 }
+    Refine 6
+    Init {} { U = 1 }
+    VariableTracerVOF T
+    VariableTracer T1
+    InitFraction T (- ellipse (0, 0.3, 0.1, 0.1))
+    InitFraction T1 (- ellipse (0, 0.3, 0.1, 0.1))
+    AdaptGradient { istep = 1 } { cmax = 1e-3 minlevel = 4 maxlevel = (x < 0.25 ? 6 : 7) } T1
+    OutputScalarSum { istep = 1 end = 0.8 } srt { v = y*T }
+    OutputScalarSum { istep = 1 end = 0.8 } srt1 { v = y*T1 }
+    OutputSimulation { step = 0.2 } stdout
+    EventScript { step = 0.2 } {
+	echo "Save stdout { format = Gnuplot }"
+    }
+    EventScript { start = 1.2 } {
+	echo "Clear"
+	cat vectors.gfv
+	echo "Save vectors.gnu { format = Gnuplot }"
+    }
+}
+GfsBox {
+    left = Boundary {
+	BcDirichlet U 1
+	BcDirichlet V 0
+    }
+    top = BoundaryOutflow
+}
diff --git a/test/axiadvection/solid/axi.sh b/test/axiadvection/solid/axi.sh
new file mode 100644
index 0000000..dc2f101
--- /dev/null
+++ b/test/axiadvection/solid/axi.sh
@@ -0,0 +1,33 @@
+if ! $donotrun; then
+    gerris2D solid.gfs
+fi
+
+if awk '
+BEGIN { min = 1000.; max = -1000.; }{ 
+  if ($5 < min) min = $5; 
+  if ($5 > max) max = $5; 
+}
+END {
+  e = 2.*(max - min)/(max + min);
+  print "VOF:", e;
+  if (e > 2e-2)
+    exit (1);
+}' < srt; then :
+else
+    exit 1
+fi
+
+if awk '
+BEGIN { min = 1000.; max = -1000.; }{ 
+  if ($5 < min) min = $5; 
+  if ($5 > max) max = $5; 
+}
+END {
+  e = 2.*(max - min)/(max + min);
+  print "Standard:", e;
+  if (e > 3e-5)
+    exit (1);
+}' < srt1; then :
+else
+    exit 1
+fi
diff --git a/test/axiadvection/solid/solid.gfs b/test/axiadvection/solid/solid.gfs
new file mode 100644
index 0000000..50e8b8c
--- /dev/null
+++ b/test/axiadvection/solid/solid.gfs
@@ -0,0 +1,33 @@
+# Title: Mass conservation with solid boundary
+#
+# Description:
+#
+# A similar test but for tracers advected around a solid sphere.
+#
+# Author: St\'ephane Popinet
+# Command: sh axi.sh
+# Version: 1.3.0
+# Required files: axi.sh
+#
+1 0 GfsAxi GfsBox GfsGEdge {} {
+    Time { end = 0.55 }
+    Refine (x < 0. ? 7 : 8)
+    Init {} { U = 1 }
+    ApproxProjectionParams { tolerance = 1e-6 }
+    ProjectionParams { tolerance = 1e-6 }
+    Solid (ellipse (0., 0., 0.05, 0.05))
+    VariableTracerVOF T
+    VariableTracer T1
+    InitFraction T (- ellipse (-0.2, 0., 0.05, 0.05))
+    InitFraction T1 (- ellipse (-0.2, 0., 0.05, 0.05))
+    AdaptGradient { istep = 1 } { cmax = 1e-3 minlevel = 4 maxlevel = (x < 0. ? 7 : 8) } T1
+    OutputScalarSum { istep = 1 } srt { v = y*T }
+    OutputScalarSum { istep = 1 } srt1 { v = y*T1 }
+}
+GfsBox {
+    left = Boundary {
+	BcDirichlet U 1
+	BcDirichlet V 0
+    }
+    right = BoundaryOutflow
+}
diff --git a/doc/examples/garden/end.gfv b/test/axiadvection/vectors.gfv
similarity index 67%
copy from doc/examples/garden/end.gfv
copy to test/axiadvection/vectors.gfv
index 3690731..bc7eb47 100644
--- a/doc/examples/garden/end.gfv
+++ b/test/axiadvection/vectors.gfv
@@ -1,25 +1,26 @@
 # GfsView 2D
 View {
-  tx = 0 ty = 0
+  tx = -0.0177224 ty = -0.490634
   sx = 1 sy = 1 sz = 1
   q0 = 0 q1 = 0 q2 = 0 q3 = 1
-  fov = 24.9119
+  fov = 22.0083
   r = 0.3 g = 0.4 b = 0.6
   res = 1
   lc = 0.001
   reactivity = 0.1
 }
-Isoline {
+Vectors {
   r = 0 g = 0 b = 0
   shading = Constant
-  maxlevel = -1
+  maxlevel = 4
 } {
   n.x = 0 n.y = 0 n.z = 1
   pos = 0
-} Hs {
+} P {
   amin = 1
   amax = 1
   cmap = Jet
-} {
-  n = 0 levels = .1,.2,.3,.4,.5,.6,.7,.8,.9,1
+} U V {
+  scale = 0.07499
+  use_scalar = 0
 }
diff --git a/doc/examples/rt/rt.gfv b/test/axiadvection/vof.gfv
similarity index 72%
copy from doc/examples/rt/rt.gfv
copy to test/axiadvection/vof.gfv
index 4edfb6c..1cb7f74 100644
--- a/doc/examples/rt/rt.gfv
+++ b/test/axiadvection/vof.gfv
@@ -1,9 +1,9 @@
 # GfsView 2D
 View {
-  tx = -0.0838119 ty = -0.501667
+  tx = -0.0177224 ty = -0.490634
   sx = 1 sy = 1 sz = 1
   q0 = 0 q1 = 0 q2 = 0 q3 = 1
-  fov = 55.2206
+  fov = 22.0083
   r = 0.3 g = 0.4 b = 0.6
   res = 1
   lc = 0.001
@@ -23,9 +23,5 @@ VOF {
 } T {
   reversed = 0
   use_scalar = 0
-}
-Boundaries {
-  r = 0 g = 0 b = 0
-  shading = Constant
-  maxlevel = -1
+  draw_edges = 0
 }
diff --git a/test/template.tex b/test/template.tex
index 368b33f..40a313c 100644
--- a/test/template.tex
+++ b/test/template.tex
@@ -61,6 +61,8 @@ branch only.
 
 \section{Axisymmetric Euler}
 \input{axi/axi.tex}
+\input{axiadvection/axiadvection.tex}
+\input{axiadvection/solid/solid.tex}
 
 \section{Navier-Stokes}
 

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list