[SCM] Gerris Flow Solver branch, upstream,	updated. b3aa46814a06c9cb2912790b23916ffb44f1f203
    Stephane Popinet 
    popinet at users.sf.net
       
    Fri May 15 02:53:33 UTC 2009
    
    
  
The following commit has been merged in the upstream branch:
commit 3db60b42de39e73bf1070fe72d9b489cf319c921
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Mon Jan 30 20:42:31 2006 +1100
    K8 smoothing kernel doesn't work
    
    Bubbles appear to be unstable for all smoothing lengths larger than twice the
    grid size. For these lengths K8 does not improve over the default vertex filter.
    
    darcs-hash:20060130094231-d4795-514a724b5e68f343f16fe0f95939ac8dd9313261.gz
diff --git a/src/variable.c b/src/variable.c
index c0e54b4..ba82cc2 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -396,56 +396,15 @@ static void filter (FttCell * cell, gpointer * data)
   GFS_VARIABLE (cell, b->i) = val/(4*(FTT_DIMENSION - 1));
 }
 
-static void K8 (FttCell * cell, gpointer * data)
-{
-  GfsVariable * a = data[0];
-  gdouble * w = data[2], * eps = data[4], * val = data[5];
-  FttVector * c = data[3], p;
-  gdouble r2, eps2 = (*eps)*(*eps);
-
-  ftt_cell_pos (cell, &p);
-  r2 = ((p.x - c->x)*(p.x - c->x) + 
-	(p.y - c->y)*(p.y - c->y) +
-	(p.z - c->z)*(p.z - c->z));
-  if (r2 < eps2) {
-    gdouble w1 = (1. - r2/eps2);
-
-    w1 = w1*w1*w1*w1;
-    *val += w1*GFS_VARIABLE (cell, a->i);
-    *w += w1;
-  }
-}
-
-static void filter_K8 (FttCell * cell, gpointer * data)
-{
-  GfsVariable * a = data[0];
-  GfsVariable * b = data[1];
-  FttVector p;
-  gdouble w = 0., eps = 2./32., val = 0.;
-  GtsBBox bb;
-
-  ftt_cell_pos (cell, &p);
-  bb.x1 = p.x - eps; bb.y1 = p.y - eps; bb.z1 = p.z - eps;
-  bb.x2 = p.x + eps; bb.y2 = p.y + eps; bb.z2 = p.z + eps;
-  data[2] = &w;
-  data[3] = &p;
-  data[4] = &eps;
-  data[5] = &val;
-  gfs_domain_cell_traverse_box (a->domain, &bb, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-				(FttCellTraverseFunc) K8, data);
-  g_assert (w > 0.);
-  GFS_VARIABLE (cell, b->i) = val/w;
-}
-
 static void variable_filtered_event_half (GfsEvent * event, GfsSimulation * sim)
 {
   guint n, niter = GFS_VARIABLE_FILTERED (event)->niter - 1;
-  gpointer data[6];
+  gpointer data[2];
 
   data[0] = GFS_VARIABLE_FILTERED (event)->v;
   data[1] = event;
   gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-			    (FttCellTraverseFunc) filter_K8, data);
+			    (FttCellTraverseFunc) filter, data);
   gfs_domain_copy_bc (GFS_DOMAIN (sim), FTT_TRAVERSE_LEAFS, -1, data[0], data[1]);
   if (niter > 0) {
     data[0] = event;
-- 
Gerris Flow Solver
    
    
More information about the debian-science-commits
mailing list