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

Stephane Popinet s.popinet at niwa.co.nz
Fri May 15 02:51:41 UTC 2009


The following commit has been merged in the upstream branch:
commit 166f1fcbf63c5f8ed1511f22d2780af26d0c5fb0
Author: Stephane Popinet <s.popinet at niwa.co.nz>
Date:   Tue Mar 15 16:36:08 2005 +1100

    Initial implementation of examples scripts
    
    darcs-hash:20050315053608-fbd8f-7c3cb449a5d4ab0653147d6e345e6b4906d8d30e.gz

diff --git a/configure.in b/configure.in
index 896d0ce..e14348e 100644
--- a/configure.in
+++ b/configure.in
@@ -415,4 +415,5 @@ test/ocean/Makefile
 test/tension/Makefile
 doc/Makefile
 doc/tutorial/Makefile
+doc/examples/Makefile
 ])
diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
new file mode 100644
index 0000000..ecd2aa7
--- /dev/null
+++ b/doc/examples/Makefile.am
@@ -0,0 +1,37 @@
+## Process this file with automake to produce Makefile.in
+
+EXAMPLES = \
+	cylinder
+
+EXTRA_DIST = \
+	$(EXAMPLES) \
+	template.tex \
+	gfs2tex.py \
+	gfs2tex
+
+clean-generic:
+	$(RM) *.dvi *.aux *.log *.toc *.out examples.tex *.pyc
+
+examples.tar.gz: examples.ps.gz
+	latex2html -no_math -html_version 3.2,math -address "" -info "" -split +3 -show_section_numbers -toc_depth 5 -t "Gerris Examples" -local_icons -white examples.tex
+	tar cf examples.tar examples
+	gzip -f --best examples.tar
+
+examples.dvi: examples.tex
+	latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
+	latex -interaction=nonstopmode examples.tex > /dev/null 2>&1
+	latex -interaction=nonstopmode examples.tex
+
+examples.ps.gz: examples.dvi
+	dvips examples.dvi -o examples.ps
+	gzip -f --best examples.ps
+
+examples.pdf: examples.dvi
+	dvips -Ppdf -G0 examples.dvi -o examples.ps
+	ps2pdf -sPAPERSIZE=a4 -dMaxSubsetPct=100 -dCompatibilityLevel=1.2 -dSubsetFonts=true -dEmbedAllFonts=true examples.ps examples.pdf
+	rm -f examples.ps
+
+examples.tex: template.tex
+	rm -r -f examples
+	./gfs2tex
+	sed "s/GFS_VERSION/`$(top_srcdir)/src/gerris2D -V 2>&1 | awk '{ if ($$5 == "version") print $$6}'`/g" < template.tex > examples.tex
diff --git a/doc/examples/cylinder/cylinder.gfs b/doc/examples/cylinder/cylinder.gfs
new file mode 100644
index 0000000..a1f8861
--- /dev/null
+++ b/doc/examples/cylinder/cylinder.gfs
@@ -0,0 +1,137 @@
+# Title: B\'enard--von K\'arm\'an Vortex Street for flow around a cylinder at Re=160
+#
+# Description:
+#
+# An example of 2D viscous flow around a simple solid boundary. Fluid
+# is injected to the left of a channel bounded by solid walls with a
+# slip boundary condition. A passive tracer is injected in the bottom
+# half of the inlet.
+#
+# Adaptive refinement is used based on both the vorticity and the
+# gradient of the passive tracer.
+#
+# After an initial growth phase, a classical B\'enard--von K\'arman
+# vortex street is formed.
+#
+# The results are visualised using MPEG movies of the vorticity
+# (Figure \ref{vorticity}) and tracer concentration (Figure
+# \ref{tracer}) generated on-the-fly.
+#
+# \begin{figure}[htbp]
+# \begin{center}
+# \htmladdnormallinkfoot{\includegraphics[width=\hsize]{vort.eps}}{vort.mpg}
+# \end{center}
+# \caption{MPEG movie of the vorticity field.}
+# \label{vorticity}
+# \end{figure}
+#
+# \begin{figure}[htbp]
+# \begin{center}
+# \htmladdnormallinkfoot{\includegraphics[width=\hsize]{t.eps}}{t.mpg}
+# \end{center}
+# \caption{MPEG movie of the tracer field.}
+# \label{tracer}
+# \end{figure}
+#
+# Author: St\'ephane Popinet
+# Command: gerris2D cylinder.gfs
+# Version: 0.6.4
+# Required files: cylinder.gfs cylinder.gts
+# Running time: 32 minutes
+# Generated files: t.mpg vort.mpg t.eps vort.eps
+#
+# The simulation domain has 8 GfsBox linked by 7 GfsGEdge
+8 7 GfsSimulation GfsBox GfsGEdge {} {
+
+  # Stop the simulation at t = 15
+  Time { end = 15 }
+
+  # Use an initial refinement of 6 levels (i.e. 2^6=64x64 for each box)
+  Refine 6
+
+  # Insert the solid boundary defined by cylinder.gts
+  GtsSurfaceFile cylinder.gts
+
+  # Add a passive tracer called T
+  VariableTracer {} T
+
+  # Set the initial x-component of the velocity to 1
+  Init {} { U = 1 }
+
+  # Adapt the mesh using the vorticity criterion at every timestep
+  # down to a maximum level of 6 and with a maximum tolerance of 1e-2
+  AdaptVorticity { istep = 1 } { maxlevel = 6 cmax = 1e-2 }
+
+  # Adapt the mesh using the gradient criterion on variable T at
+  # every timestep, down to a maximum level of 6 and with a maximum tolerance of 1e-2
+  AdaptGradient { istep = 1 } { maxlevel = 6 cmax = 1e-2 } T
+
+  # Set a viscosity source term on the velocity vector with x-component U
+  # The Reynolds number is Re = D*U/Nu = 0.125*1/0.00078125 = 160
+  # where D is the cylinder diameter (as defined in cylinder.gts)
+  SourceViscosity {} U 0.00078125
+
+  # Writes the time and timestep every 10 timesteps on standard output
+  OutputTime { istep = 10 } stdout
+
+  # Writes the simulation size every 10 timesteps on standard output
+  OutputBalance { istep = 10 } stdout
+
+  # Writes info about the convergence of the Poisson solver on standard output
+  OutputProjectionStats { istep = 10 } stdout
+
+  # Pipes a bitmap PPM image representation of the vorticity field at every other timestep
+  # into a MJPegTools conversion pipeline to create a MPEG movie called vort.mpg
+  # Sets the minimum used for colormapping to -10 and the maximum to 10
+  OutputPPM { istep = 2 } { ppmtoy4m -F 24:1 -v 0 | mpeg2enc -v 0 -o vort.mpg } {
+    min = -10 max = 10 v = Vorticity 
+  }
+
+  # Pipes a bitmap PPM image representation of the T field at every other timestep
+  # into a MJPEGTools conversion pipeline to create a MPEG movie called t.mpg
+  # Sets the minimum used for colormapping to 0 and the maximum to 1
+  OutputPPM { istep = 2 } { ppmtoy4m -F 24:1 -v 0 | mpeg2enc -v 0 -o t.mpg } {
+    min = 0 max = 1 v = T
+  }
+
+  # Pipes a bitmap PPM image representation of the vorticity field at time 15
+  # into the ImageMagick converter "convert" to create the corresponding EPS file
+  OutputPPM { start = 15 } { convert -colors 256 ppm:- vort.eps } {
+    min = -10 max = 10 v = Vorticity
+  }
+
+  # Pipes a bitmap PPM image representation of the T field at time 15
+  # into the ImageMagick converter "convert" to create the corresponding EPS file
+  OutputPPM { start = 15 } { convert -colors 256 ppm:- t.eps } {
+    min = 0 max = 1 v = T
+  }
+
+  # Outputs profiling information at the end of the simulation to standard output
+  OutputTiming { start = end } stdout
+
+}
+GfsBox {
+  # Left boundary on the leftmost box is:
+  #   Dirichlet U=1 for the x-component of the velocity
+  #   Dirichlet T = 1 if y < 0, 0 otherwise
+  left = Boundary {
+    BcDirichlet U 1
+    BcDirichlet T { return y < 0. ? 1. : 0.; }
+  }
+}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+# Right boundary on the rightmost box is outflow
+GfsBox { right = BoundaryOutflow }
+# All the boxes are linked by left to right links
+1 2 right
+2 3 right
+3 4 right
+4 5 right
+5 6 right
+6 7 right
+7 8 right
diff --git a/doc/examples/cylinder/heated/heated.gfs b/doc/examples/cylinder/heated/heated.gfs
new file mode 100644
index 0000000..49e6e6a
--- /dev/null
+++ b/doc/examples/cylinder/heated/heated.gfs
@@ -0,0 +1,113 @@
+# Title: Vortex street around a "heated" cylinder
+#
+# Description:
+#
+# Same as the previous example but this time the tracer is "passive
+# temperature" (i.e. the change in density due to heating is assumed to be
+# negligible).
+#
+# This is an example on how to solve an advection--diffusion equation
+# for a tracer with Dirichlet boundary conditions on an immersed solid
+# boundary.
+#
+# \begin{figure}[htbp]
+# \begin{center}
+# \htmladdnormallinkfoot{\includegraphics[width=\hsize]{t.eps}}{t.mpg}
+# \end{center}
+# \caption{MPEG movie of the tracer field.}
+# \label{tracer}
+# \end{figure}
+#
+# Author: St\'ephane Popinet
+# Command: gerris2D heated.gfs
+# Version: 0.6.4
+# Required files: heated.gfs ../cylinder.gts
+# Running time: 22 minutes
+# Generated files: t.mpg t.eps
+#
+# The simulation domain has 8 GfsBox linked by 7 GfsGEdge
+8 7 GfsSimulation GfsBox GfsGEdge {} {
+
+  # Stop the simulation at t = 15
+  Time { end = 15 }
+
+  # Use an initial refinement of 6 levels (i.e. 2^6=64x64 for each box)
+  Refine 6
+
+  # Insert the solid boundary defined by cylinder.gts
+  GtsSurfaceFile ../cylinder.gts
+
+  # Add a passive tracer called T
+  VariableTracer {} T
+
+   # Add diffusion to tracer T
+  SourceDiffusion {} T 0.001
+
+  # Dirichlet boundary condition for T on the cylinder
+  SurfaceBc T Dirichlet 1
+
+  # Set the initial x-component of the velocity to 1
+  Init {} { U = 1 }
+
+  # Adapt the mesh using the vorticity criterion at every timestep
+  # down to a maximum level of 6 and with a maximum tolerance of 1e-2
+  AdaptVorticity { istep = 1 } { maxlevel = 6 cmax = 1e-2 }
+
+  # Adapt the mesh using the gradient criterion on variable T at
+  # every timestep, down to a maximum level of 6 and with a maximum tolerance of 1e-2
+  AdaptGradient { istep = 1 } { maxlevel = 6 cmax = 1e-2 } T
+
+  # Set a viscosity source term on the velocity vector with x-component U
+  # The Reynolds number is Re = D*U/Nu = 0.125*1/0.00078125 = 160
+  # where D is the cylinder diameter (as defined in cylinder.gts)
+  SourceViscosity {} U 0.00078125
+
+  # Writes the time and timestep every 10 timesteps on standard output
+  OutputTime { istep = 10 } stdout
+
+  # Writes the simulation size every 10 timesteps on standard output
+  OutputBalance { istep = 10 } stdout
+
+  # Writes info about the convergence of the Poisson solver on standard output
+  OutputProjectionStats { istep = 10 } stdout
+
+  # Pipes a bitmap PPM image representation of the T field at every other timestep
+  # into a MJPEGTools conversion pipeline to create a MPEG movie called t.mpg
+  # Sets the minimum used for colormapping to 0 and the maximum to 0.4
+  OutputPPM { istep = 2 } { ppmtoy4m -F 24:1 -v 0 | mpeg2enc -v 0 -o t.mpg } {
+    min = 0 max = 0.4 v = T
+  }
+
+  # Pipes a bitmap PPM image representation of the T field at time 15
+  # into the ImageMagick converter "convert" to create the corresponding EPS file
+  OutputPPM { start = 15 } { convert -colors 256 ppm:- t.eps } {
+    min = 0 max = 0.4 v = T
+  }
+
+  # Outputs profiling information at the end of the simulation to standard output
+  OutputTiming { start = end } stdout
+
+}
+GfsBox {
+  # Left boundary on the leftmost box is:
+  #   Dirichlet U=1 for the x-component of the velocity
+  left = Boundary {
+    BcDirichlet U 1
+  }
+}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+GfsBox {}
+# Right boundary on the rightmost box is outflow
+GfsBox { right = BoundaryOutflow }
+# All the boxes are linked by left to right links
+1 2 right
+2 3 right
+3 4 right
+4 5 right
+5 6 right
+6 7 right
+7 8 right
diff --git a/doc/examples/gfs2tex b/doc/examples/gfs2tex
new file mode 100755
index 0000000..37a0e53
--- /dev/null
+++ b/doc/examples/gfs2tex
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+
+import sys
+import os
+import os.path
+import glob
+import gfs2tex
+
+if not os.access("examples",os.F_OK):
+    os.mkdir("examples")
+
+dico = {}
+for f in glob.glob("../html/*.html"):
+    gfs2tex.dictionary(dico,"file:/home/popinet/adds/src/gerris-stable/doc/html",open(f))
+
+for root, dirs, files in os.walk("."):
+    for d in dirs:
+        if (root + "/" + d)[0:10] != "./examples" and d != ".xvpics":
+            example = gfs2tex.Example(root + "/" + d)
+            if not os.access("examples/" + example.path,os.F_OK):
+                os.symlink("." + example.path, "examples/" + example.path)
+            example.write(dico)
diff --git a/doc/examples/gfs2tex.py b/doc/examples/gfs2tex.py
new file mode 100644
index 0000000..0eca9b1
--- /dev/null
+++ b/doc/examples/gfs2tex.py
@@ -0,0 +1,159 @@
+import sys
+import os
+import os.path
+import re
+
+def generated(lines):
+    for line in lines:
+        record = line.split()
+        if len(record) > 3 and \
+               record[0] == "#" and record[1] == "Generated" and record[2] == "files:":
+            return record[3:]
+    return []
+
+def dictionary(d,path,file):
+    instruct = 0
+    for line in file:
+        record = line.split()
+        if len(record) == 2 and record[0] == "struct" and record[1] == "<A":
+            instruct = 1
+        elif len(record) == 1 and record[0] == ">;":
+            instruct = 0
+        elif instruct:
+            if line[0:5] == "HREF=":
+                val = path + "/" + line[6:-2]
+            elif line[0] == ">" and line[-4:] == "</A\n":
+                d[line[1:-4]] = val
+
+class Example:
+    def __init__(self,path):
+        self.path, self.name = os.path.split(path)
+        self.path += "/" + self.name
+        self.section = ["\\subsection","\\subsubsection"][self.path.count("/")-1]
+        name = self.path + "/" + self.name + ".gfs"
+        file = open(name)
+        lines = file.readlines()
+        self.generated = generated(lines)
+        p = re.compile(r"\\label\{[a-zA-Z0-9_\-]*\}")
+        labels = []
+        for line in lines:
+            for l in re.findall(p,line):
+                labels.append(l[7:-1])
+
+        # adds the full path to references to generated files and makes labels absolute
+        lines1 = []
+        path = self.path[2:].replace("/", "-")
+        for line in lines:
+            for gen in self.generated:
+                line = line.replace("{" + gen + "}", "{" + self.path + "/" + gen + "}")
+            for l in labels:
+                line = line.replace("{" + l + "}", "{" + path + "-" + l + "}")
+            lines1.append(line)
+        lines = lines1
+
+        self.title = []
+        self.description = []
+
+        insthg = None
+        for line in lines:
+            record = line.split()
+            if len(record) > 0 and record[0] == "#":
+                if len(record) > 1:
+                    if record[1] == "Title:":
+                        self.title.append(" ".join(record[2:]))
+                        insthg = self.title
+                    elif record[1] == "Description:":
+                        insthg = self.description
+                    elif record[1] == "Required" and record[2] == "files:":
+                        self.required = record[3:]
+                        insthg = None
+                    elif record[1] == "Command:":
+                        self.command = " ".join(record[2:])
+                        insthg = None
+                    elif record[1] == "Author:":
+                        self.author = " ".join(record[2:])
+                        insthg = None
+                    elif record[1] == "Running" and record[2] == "time:":
+                        self.time = " ".join(record[3:])
+                        insthg = None
+                    elif record[1] == "Version:":
+                        self.version = " ".join(record[2:])
+                        insthg = None
+                    elif not insthg == None:
+                        insthg.append(" ".join(record[1:]))
+                elif not insthg == None:
+                    insthg.append(" ".join(record[1:]))
+            
+    def write(self,dico,file=None):
+        if file == None:
+            file = open(self.path + "/" + self.name + ".tex", 'w')
+        file.write(self.section + "{" + "\n".join(self.title) + "}\n")
+        file.write("\\begin{description}\n")
+        file.write("\\item[Author]" + self.author + "\n")
+        file.write("\\item[Command]" + "{\\tt " + self.command + "}\n")
+        file.write("\\item[Version]" + self.version + "\n")
+        required = ""
+        for f in self.required:
+            if f[-4:] == ".gfs":
+                required += " " + f + \
+                            " \\htmladdnormallinkfoot{(view)}{" + self.path + "/" + f + ".html}" +\
+                            " \\htmladdnormallinkfoot{(download)}{" + self.path + "/" + f + "}\\\\"
+            else:
+                required += " \\htmladdnormallinkfoot{" + f + "}{" + self.path + "/" + f + "}"
+        file.write("\\item[Required files]" + required + "\n")
+        file.write("\\item[Running time]" + self.time + "\n")
+        file.write("\\end{description}\n")
+        file.write("\n".join(self.description))
+        self.colorize(dico)
+
+    def colorize(self,dico):
+        file = open(self.path + "/" + self.name + ".gfs")
+        out = open(self.path + "/" + self.name + ".gfs.html", 'w')
+        out.write("<html>\n<body>\n")
+        infile = insthg = 0
+        for line in file:
+            l = ""
+            first = 1
+            comment = 0
+            for c in line:
+                if c == " " and first:
+                    l += "&nbsp; "
+                else:
+                    if first and c == "#":
+                        comment = 1
+                    first = 0
+                    if c == '<':
+                        l += "&lt"
+                    elif c == '>':
+                        l += "&gt"
+                    elif c == '&':
+                        l += "&amp"
+                    else:
+                        l += c
+            if comment:
+                if infile:
+                    record = line.split()
+                    if insthg or len(record) > 1:
+                        out.write("<font color=\"#5285B4\">")
+                        out.write(l)
+                        out.write("</font><br>")
+                        insthg = 1
+                else:
+                    record = line.split()
+                    if len(record) > 2 and record[1] == "Generated" and record[2] == "files:":
+                        infile = 1
+                        insthg = 0
+            elif insthg:
+                record = l.split()
+                for r in record:
+                    key = None
+                    if dico.has_key(r):
+                        key = r
+                    elif dico.has_key("Gfs" + r):
+                        key = "Gfs" + r
+                    if key != None:
+                        out.write("<a href=\"" + dico[key] + "\">" + r + "</a> ")
+                    else:
+                        out.write(r + " ")
+                out.write("<br>\n")
+        out.write("</body>\n</html>\n")
diff --git a/doc/examples/template.tex b/doc/examples/template.tex
new file mode 100644
index 0000000..78cd05d
--- /dev/null
+++ b/doc/examples/template.tex
@@ -0,0 +1,37 @@
+\documentclass[a4paper]{article}
+\usepackage{html}
+\usepackage{color}
+\usepackage{graphicx}
+\pagecolor{white}
+
+\oddsidemargin=4mm
+\evensidemargin=-1mm
+\topmargin=-7mm
+\textwidth=15.42cm
+\textheight=23.2cm
+
+\begin{document}
+
+\mbox{}\vspace{1cm}
+\begin{center}
+{\huge Gerris examples}\\
+{\large Version 0.6.4}\\
+\vspace{5mm}
+{\large St\'ephane Popinet\\
+{\tt s.popinet at niwa.cri.nz}\\
+\vspace{5mm}
+\today}
+\vspace{1cm}
+\end{center}
+
+\tableofcontents
+\newpage
+
+\section{2D}
+
+\input{cylinder/cylinder.tex}
+\input{cylinder/heated/heated.tex}
+
+\section{How to write examples}
+
+\end{document}
diff --git a/doc/tmpl/domain.sgml b/doc/tmpl/domain.sgml
index 01687ad..85d8f9c 100644
--- a/doc/tmpl/domain.sgml
+++ b/doc/tmpl/domain.sgml
@@ -348,7 +348,7 @@ Fluid domain
 @min: 
 
 
-<!-- ##### FUNCTION gfs_domain_remove_islands ##### -->
+<!-- ##### FUNCTION gfs_domain_remove_ponds ##### -->
 <para>
 
 </para>
@@ -359,6 +359,14 @@ Fluid domain
 @data: 
 
 
+<!-- ##### FUNCTION gfs_domain_remove_specks ##### -->
+<para>
+
+</para>
+
+ at domain: 
+
+
 <!-- ##### FUNCTION gfs_domain_advect_point ##### -->
 <para>
 
diff --git a/doc/tmpl/fluid.sgml b/doc/tmpl/fluid.sgml
index 3111fa9..96e8bf3 100644
--- a/doc/tmpl/fluid.sgml
+++ b/doc/tmpl/fluid.sgml
@@ -415,6 +415,7 @@ The fluid variables associated with a fluid cell.
 </para>
 
 @cell: 
+ at v: 
 
 
 <!-- ##### FUNCTION gfs_normal_divergence ##### -->
diff --git a/doc/tmpl/function.sgml b/doc/tmpl/function.sgml
index 6207aab..6d80875 100644
--- a/doc/tmpl/function.sgml
+++ b/doc/tmpl/function.sgml
@@ -105,6 +105,7 @@ or a C function
 </para>
 
 @f: 
+ at cell: 
 @p: 
 @t: 
 @Returns: 
@@ -116,6 +117,7 @@ or a C function
 </para>
 
 @f: 
+ at domain: 
 @fp: 
 
 
diff --git a/doc/tmpl/gfs-unused.sgml b/doc/tmpl/gfs-unused.sgml
index e7d469e..f684df7 100644
--- a/doc/tmpl/gfs-unused.sgml
+++ b/doc/tmpl/gfs-unused.sgml
@@ -491,6 +491,16 @@ Evaluates to the index of the neighboring direction opposite to @i.
 @max_depth: 
 @p: 
 
+<!-- ##### FUNCTION gfs_domain_remove_islands ##### -->
+<para>
+
+</para>
+
+ at domain: 
+ at min: 
+ at cleanup: 
+ at data: 
+
 <!-- ##### FUNCTION gfs_domain_traversed_merged ##### -->
 <para>
 
@@ -615,6 +625,14 @@ Evaluates to the index of the neighboring direction opposite to @i.
 @variables: 
 @Returns: 
 
+<!-- ##### FUNCTION gfs_refine_mixed ##### -->
+<para>
+
+</para>
+
+ at cell: 
+ at Returns: 
+
 <!-- ##### FUNCTION gfs_relax_level ##### -->
 <para>
 
@@ -633,6 +651,22 @@ Evaluates to the index of the neighboring direction opposite to @i.
 @cell: 
 @v: 
 
+<!-- ##### FUNCTION gfs_simulation_event ##### -->
+<para>
+
+</para>
+
+ at sim: 
+ at events: 
+
+<!-- ##### FUNCTION gfs_simulation_event_init ##### -->
+<para>
+
+</para>
+
+ at sim: 
+ at events: 
+
 <!-- ##### FUNCTION gfs_solid_stats ##### -->
 <para>
 
diff --git a/doc/tmpl/output_simulation.sgml b/doc/tmpl/output_simulation.sgml
index 683a7b1..5587835 100644
--- a/doc/tmpl/output_simulation.sgml
+++ b/doc/tmpl/output_simulation.sgml
@@ -83,6 +83,7 @@ with
 @max_depth: 
 @var: 
 @binary: 
+ at surface: 
 
 <!-- ##### FUNCTION gfs_output_simulation_class ##### -->
 <para>
diff --git a/doc/tmpl/simulation.sgml b/doc/tmpl/simulation.sgml
index 2f96814..79a5ece 100644
--- a/doc/tmpl/simulation.sgml
+++ b/doc/tmpl/simulation.sgml
@@ -59,6 +59,7 @@ Simulations
 @advection_params: 
 @diffusion_params: 
 @surface: 
+ at output_surface: 
 @interface: 
 @itree: 
 @i_is_open: 
@@ -137,15 +138,6 @@ Simulations
 @sim: 
 
 
-<!-- ##### FUNCTION gfs_simulation_event_init ##### -->
-<para>
-
-</para>
-
- at sim: 
- at events: 
-
-
 <!-- ##### FUNCTION gfs_simulation_set_timestep ##### -->
 <para>
 
@@ -154,15 +146,6 @@ Simulations
 @sim: 
 
 
-<!-- ##### FUNCTION gfs_simulation_event ##### -->
-<para>
-
-</para>
-
- at sim: 
- at events: 
-
-
 <!-- ##### FUNCTION gfs_simulation_adapt ##### -->
 <para>
 
diff --git a/doc/tmpl/solid.sgml b/doc/tmpl/solid.sgml
index 0b51bf7..f969f30 100644
--- a/doc/tmpl/solid.sgml
+++ b/doc/tmpl/solid.sgml
@@ -81,15 +81,6 @@ Contains the surface and volume fractions of the cell not contained in the solid
 @s: 
 
 
-<!-- ##### FUNCTION gfs_refine_mixed ##### -->
-<para>
-
-</para>
-
- at cell: 
- at Returns: 
-
-
 <!-- ##### FUNCTION gfs_cell_traverse_mixed ##### -->
 <para>
 

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list