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

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


The following commit has been merged in the upstream branch:
commit 53de916f0ddf91e2b3a879f24c72936eddaabeed
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Sat Jan 27 08:33:46 2007 +1100

    Stability criterion for gravity waves only takes into account interface cells
    
    darcs-hash:20070126213346-d4795-4a2f232e52c6d7bffaa02e1cb584880dfc3cbf90.gz

diff --git a/src/tension.c b/src/tension.c
index 635ecd6..37ee8e7 100644
--- a/src/tension.c
+++ b/src/tension.c
@@ -68,13 +68,18 @@ typedef struct {
   GfsVariable * c;
 } StabilityParams;
 
-static void min_max_alpha (FttCell * cell, StabilityParams * p)
+static void interface_level (FttCell * cell, StabilityParams * p)
 {
   guint level = ftt_cell_level (cell);
-  if (level > p->depth && 
+  if (level > p->depth &&
       GFS_VARIABLE (cell, p->c->i) > 1e-3 && 
       GFS_VARIABLE (cell, p->c->i) < 1. - 1.e-3)
     p->depth = level;
+}
+
+static void min_max_alpha (FttCell * cell, StabilityParams * p)
+{
+  interface_level (cell, p);
   if (p->alpha) {
     gdouble a = gfs_function_value (p->alpha, cell);
     if (a < p->amin) p->amin = a;
@@ -278,10 +283,14 @@ static void gfs_source_tension_write (GtsObject * o, FILE * fp)
 static gdouble gfs_source_tension_stability (GfsSourceGeneric * s,
 					     GfsSimulation * sim)
 {
-  if (GFS_IS_VARIABLE_POSITION (GFS_SOURCE_TENSION (s)->k))
+  if (GFS_IS_VARIABLE_POSITION (GFS_SOURCE_TENSION (s)->k)) {
     /* reduced gravity */
-    return sqrt (ftt_level_size (gfs_domain_depth (GFS_DOMAIN (sim)))/
-		 fabs (GFS_SOURCE_TENSION_GENERIC (s)->sigma));
+    StabilityParams p = { G_MAXDOUBLE, -G_MAXDOUBLE, 0 };
+    p.c = GFS_SOURCE_TENSION_GENERIC (s)->c;
+    gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) interface_level, &p);
+    return sqrt (ftt_level_size (p.depth)/fabs (GFS_SOURCE_TENSION_GENERIC (s)->sigma));
+  }
   else 
     /* surface tension */
     return gfs_source_tension_generic_stability (s, sim);

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list