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

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


The following commit has been merged in the upstream branch:
commit 3f2b41c58f0e6278a7182e023142f9e3d535e36b
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Tue Dec 5 10:26:07 2006 +1100

    "Non-hydrostatic pressure" implementation
    
    This is useful for two-phase flows with a (flattish) interface, variable
    density and gravity. The hydrostatic pressure is substracted off and the
    remaining pressure jump across the interface due to gravity is discretised
    using the same technique as for surface tension. This guarantees an accurate
    solution free of spurious (gravity) currents.
    
    darcs-hash:20061204232607-d4795-5261bed5d97a80a2adf9845f3e9a5d7925bb9d9e.gz

diff --git a/src/poisson.c b/src/poisson.c
index 867122c..9139b89 100644
--- a/src/poisson.c
+++ b/src/poisson.c
@@ -454,32 +454,27 @@ static void tension_coeff (FttCellFace * face, gpointer * data)
   GfsSourceTensionGeneric * t = data[1];
   gdouble v = lambda2[face->d/2]*t->sigma;
   GfsVariable * alpha = data[2], * kappa = GFS_SOURCE_TENSION (data[1])->k;
-
-  if (GFS_IS_VARIABLE_CURVATURE (kappa)) {
-    gdouble c1 = GFS_VARIABLE (face->cell, t->c->i);
-    gdouble c2 = GFS_VARIABLE (face->neighbor, t->c->i);
-    gdouble w1 = c1*(1. - c1);
-    gdouble w2 = c2*(1. - c2);
-    gdouble k1 = GFS_VARIABLE (face->cell, kappa->i);
-    gdouble k2 = GFS_VARIABLE (face->neighbor, kappa->i);
+  gdouble c1 = GFS_VARIABLE (face->cell, t->c->i);
+  gdouble c2 = GFS_VARIABLE (face->neighbor, t->c->i);
+  gdouble w1 = c1*(1. - c1);
+  gdouble w2 = c2*(1. - c2);
+  gdouble k1 = GFS_VARIABLE (face->cell, kappa->i);
+  gdouble k2 = GFS_VARIABLE (face->neighbor, kappa->i);
     
-    if (w1 + w2 > 0.)
-      v *= (w1*k1 + w2*k2)/(w1 + w2);
-    else {
-      if (k1 < G_MAXDOUBLE) {
-	if (k2 < G_MAXDOUBLE)
-	  v *= (k1 + k2)/2.;
-	else
-	  v *= k1;
-      }
-      else if (k2 < G_MAXDOUBLE)
-	v *= k2;
+  if (w1 + w2 > 0.)
+    v *= (w1*k1 + w2*k2)/(w1 + w2);
+  else {
+    if (k1 < G_MAXDOUBLE) {
+      if (k2 < G_MAXDOUBLE)
+	v *= (k1 + k2)/2.;
       else
-	v = 1e6;
+	v *= k1;
     }
+    else if (k2 < G_MAXDOUBLE)
+      v *= k2;
+    else
+      v = 1e6;
   }
-  else
-    v *= gfs_face_interpolated_value (face, kappa->i);
 
   if (alpha)
     v *= gfs_face_interpolated_value (face, alpha->i);

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list