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

Stephane Popinet popinet at users.sf.net
Fri May 15 02:53:58 UTC 2009


The following commit has been merged in the upstream branch:
commit 26c307a9194e79ab9559d182bd3851f668b5db62
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Tue Feb 27 13:15:31 2007 +1100

    Fix for merge with CSF branch
    
    darcs-hash:20070227021531-d4795-6dd6747dfa9ee8c404cbc74a2da2860d574b0328.gz

diff --git a/doc/examples/rt/rt.gfs b/doc/examples/rt/rt.gfs
index 1bdbbb0..66c3b53 100644
--- a/doc/examples/rt/rt.gfs
+++ b/doc/examples/rt/rt.gfs
@@ -45,11 +45,6 @@
   # The tracer T is used to track both phases
   VariableTracer {} T { scheme = vof }
  
-  # We need a filtered version of T (T1) to define a sufficiently
-  # smooth density field. The third argument defines how many times the
-  # recursive smoothing must be applied.
-  VariableFiltered {} T1 T 0
-
   # The initial sinusoidal interface.
   InitFraction {} T rt.gts
 
diff --git a/src/init.c b/src/init.c
index 2a68bac..97d2ecb 100644
--- a/src/init.c
+++ b/src/init.c
@@ -107,9 +107,11 @@ GtsObjectClass ** gfs_classes (void)
     gfs_variable_curvature_class (),
       gfs_variable_position_class (),
     gfs_variable_distance_class (),
+
   gfs_surface_bc_class (),
 
   gfs_box_class (),
+
   gfs_gedge_class (),
 
   gfs_bc_dirichlet_class (),
@@ -143,7 +145,9 @@ GtsObjectClass ** gfs_classes (void)
       gfs_adapt_function_class (),
       gfs_adapt_gradient_class (),
         gfs_adapt_curvature_class (),
+
     gfs_event_sum_class (),
+      gfs_event_sum_direction_class (),
     gfs_event_harmonic_class (),
     gfs_event_stop_class (),
     gfs_event_script_class (),
diff --git a/src/ocean.c b/src/ocean.c
index 7ffc096..32bc112 100644
--- a/src/ocean.c
+++ b/src/ocean.c
@@ -654,7 +654,8 @@ static void ocean_run (GfsSimulation * sim)
 
     gfs_domain_timer_start (domain, "correct_normal_velocities");
     gfs_poisson_coefficients (domain, NULL);
-    gfs_correct_normal_velocities (domain, 2, p, g, sim->advection_params.dt/2., NULL);
+    gfs_correct_normal_velocities_weighted (domain, 2, p, g, sim->advection_params.dt/2., FALSE);
+
     gfs_domain_cell_traverse_boundary (domain, FTT_BACK,
 				       FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 				       (FttCellTraverseFunc) compute_w, 
diff --git a/src/simulation.c b/src/simulation.c
index 313d04e..092a71f 100644
--- a/src/simulation.c
+++ b/src/simulation.c
@@ -525,10 +525,10 @@ static void simulation_run (GfsSimulation * sim)
 
     if (gfs_has_source_coriolis (domain)) {
       gfs_poisson_coefficients (domain, sim->physical_params.alpha);
-      gfs_correct_normal_velocities (domain, 2, p, g, 0., NULL);
+      gfs_correct_normal_velocities (domain, 2, p, g, 0.);
       gfs_correct_centered_velocities (domain, 2, g, sim->advection_params.dt);
       gfs_source_coriolis_implicit (domain, sim->advection_params.dt);
-      gfs_correct_normal_velocities (domain, 2, p, g, 0., NULL);
+      gfs_correct_normal_velocities (domain, 2, p, g, 0.);
       gfs_correct_centered_velocities (domain, 2, g, -sim->advection_params.dt);
     }
 
diff --git a/src/solid.c b/src/solid.c
index 1f98a0f..c57c222 100644
--- a/src/solid.c
+++ b/src/solid.c
@@ -627,25 +627,18 @@ static void set_solid_fractions_from_surface (FttCell * cell, GtsSurface * s, In
 	sym[c] = FALSE;
       n += (&m.x)[c];
     }
-    if (n > 0.) {
-      m.x /= n; m.y /= n; m.z /= n;
-      alpha = m.x*ca.x + m.y*ca.y + m.z*ca.z;
-      solid->a = gfs_plane_volume (&m, alpha, 1.);
-      gfs_plane_center (&m, alpha, solid->a, &solid->cm);
-      for (c = 0; c < FTT_DIMENSION; c++)
-	(&solid->cm.x)[c] = (&o.x)[c] + 
-	  (sym[c] ? 1. - (&solid->cm.x)[c] : (&solid->cm.x)[c])*(&h.x)[c];
-    }
-    else { /* degenerate intersections */
-      solid->a = 0.;
-      for (i = 0; i < FTT_NEIGHBORS; i++)
-	solid->a += solid->s[i];
-      solid->a /= FTT_NEIGHBORS;
-      if (solid->a == 0. || solid->a == 1.) {
-	g_free (solid);
-	GFS_STATE (cell)->solid = NULL;
-      }
-    }
+    g_assert (n > 0.);
+    m.x /= n; m.y /= n; m.z /= n;
+    alpha = m.x*ca.x + m.y*ca.y + m.z*ca.z;
+    solid->a = gfs_plane_volume (&m, alpha);
+    gfs_plane_center (&m, alpha, solid->a, &solid->cm);
+    for (c = 0; c < FTT_DIMENSION; c++)
+      (&solid->cm.x)[c] = (&o.x)[c] + 
+	(sym[c] ? 1. - (&solid->cm.x)[c] : (&solid->cm.x)[c])*(&h.x)[c];
+  }
+  else { /* this is a "thin" cell */
+    p->thin++;
+    deal_with_thin_cell (cell, p);
   }
   if (solid->a == 0.)
     GFS_VARIABLE (cell, p->status->i) = 1.;
diff --git a/test/spurious/spurious.gfs b/test/spurious/spurious.gfs
index 4699f06..b96abf4 100644
--- a/test/spurious/spurious.gfs
+++ b/test/spurious/spurious.gfs
@@ -19,36 +19,27 @@
 # The convergence is obtained for a wide range of Laplace numbers
 # $La=\sigma\rho D/\mu^2$, as illustrated on Figure \ref{laplace}.
 #
-# \begin{figure}[htbp]
-# \begin{center}
-# \includegraphics[width=0.6\hsize]{vectors.eps}
-# \end{center}
-# \caption{Spurious currents at equilibrium for $La=12000$.}
-# \label{vectors}
-# \end{figure}
+# Figure \ref{convergence} illustrates the convergence of the error on
+# the droplet shape as a function of resolution for a Laplace number
+# of 12000.
 #
 # \begin{figure}[htbp]
-# \caption{\label{laplace}Evolution of the capillary number $Ca$ as a function of
-# non-dimensional time $\tau=t\sigma/(\mu D)$ for the range of Laplace
+# \caption{\label{laplace}Evolution of the amplitude of the capillary currents
+# $\max(|{\bf u}|)(D/\sigma)^{1/2}$ as a function of
+# non-dimensional time $\tau=t\mu/D^2$ for the range of Laplace
 # numbers indicated in the legend.}
 # \begin{center}
 # \includegraphics[width=0.8\hsize]{laplace.eps}
 # \end{center}
-# \caption{Evolution of the capillary number $Ca$ as a function of
-# non-dimensional time $\tau=t\sigma/(\mu D)$ for the range of Laplace
-# numbers indicated in the legend.}
-# \label{laplace}
 # \end{figure}
 #
 # \begin{figure}[htbp]
-# \caption{\label{convergence}Poor convergence of the capillary number with increased
-# resolution. The diameter is given in number of grid points.}
+# \caption{\label{convergence}Convergence of the error on the equilibrium shape of the
+# droplet with resolution. The diameter is given in number of grid
+# points.}
 # \begin{center}
 # \includegraphics[width=0.8\hsize]{convergence.eps}
 # \end{center}
-# \caption{Poor convergence of the capillary number with increased
-# resolution. The diameter is given in number of grid points.}
-# \label{convergence}
 # \end{figure}
 #
 # Author: St\'ephane Popinet

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list