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

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


The following commit has been merged in the upstream branch:
commit c90b02ebd7eea5c2fd215a6e8bcc607a40613f61
Author: Stephane Popinet <s.popinet at niwa.co.nz>
Date:   Wed Jun 8 15:05:07 2005 +1000

    Bug fix for tracer advection (thanks to David Sterling)
    
    darcs-hash:20050608050507-fbd8f-1b8f533a7b3e32d0aeee8c79b2c65730197dfbf4.gz

diff --git a/src/advection.c b/src/advection.c
index 62a7941..8309084 100644
--- a/src/advection.c
+++ b/src/advection.c
@@ -24,7 +24,6 @@
 
 #include "solid.h"
 
-#if 1
 static gdouble transverse_term (FttCell * cell,
 				gdouble size,
 				FttComponent c,
@@ -73,10 +72,8 @@ void gfs_cell_advected_face_values (FttCell * cell,
       par->dt*GFS_VARIABLE (cell, GFS_VELOCITY_INDEX (c))/size :
       par->dt*(s->f[2*c].un + s->f[2*c + 1].un)/(2.*size);
     gdouble g = (* par->gradient) (cell, c, par->v->i);
-    gdouble vl = GFS_VARIABLE (cell, par->v->i) + 
-      MIN ((1. - unorm)/2., 0.5)*g;
-    gdouble vr = GFS_VARIABLE (cell, par->v->i) + 
-      MAX ((- 1. - unorm)/2., -0.5)*g;
+    gdouble vl = GFS_VARIABLE (cell, par->v->i) + MIN ((1. - unorm)/2., 0.5)*g;
+    gdouble vr = GFS_VARIABLE (cell, par->v->i) + MAX ((- 1. - unorm)/2., -0.5)*g;
     gdouble src = par->dt*gfs_variable_mac_source (par->v, cell)/2.;
     gdouble dv;
 
@@ -95,56 +92,6 @@ void gfs_cell_advected_face_values (FttCell * cell,
     s->f[2*c + 1].v = vr + src - dv;
   }
 }
-#else
-/**
- * gfs_cell_advected_face_values:
- * @cell: a #FttCell.
- * @par: the advection parameters.
- *
- * Fills the face variable (@v field of #GfsFaceStateVector) of all the
- * faces of @cell with the advected value of variable @par->v at time
- * t + dt/2.
- */
-void gfs_cell_advected_face_values (FttCell * cell,
-				    const GfsAdvectionParams * par)
-{
-  FttComponent c;
-  gdouble size;
-  gdouble g[FTT_DIMENSION];
-
-  g_return_if_fail (cell != NULL);
-  g_return_if_fail (par != NULL);
-
-  size = ftt_cell_size (cell);
-  for (c = 0; c < FTT_DIMENSION; c++)
-    g[c] = (* par->gradient) (cell, c, par->v);
-
-  for (c = 0; c < FTT_DIMENSION; c++) {
-    gdouble u = par->dt*GFS_VARIABLE (cell, GFS_VELOCITY (c))/size;
-    gdouble vl = GFS_VARIABLE (cell, par->v) + MIN ((1. - u)/2., 0.5)*g[c];
-    gdouble vr = GFS_VARIABLE (cell, par->v) + MAX ((-1. - u)/2., -0.5)*g[c];
-    gdouble dv;
-    FttComponent cp;
-#if FTT_2D
-
-    cp = FTT_ORTHOGONAL_COMPONENT (c);
-    dv = par->dt*GFS_VARIABLE (cell, GFS_VELOCITY (cp))*g[cp]/(2.*size);
-#else  /* FTT_3D */
-    static FttComponent orthogonal[FTT_DIMENSION][2] = {
-      {FTT_Y, FTT_Z}, {FTT_X, FTT_Z}, {FTT_X, FTT_Y}
-    };
-
-    cp = orthogonal[c][0];
-    dv = par->dt*GFS_VARIABLE (cell, GFS_VELOCITY (cp))*g[cp]/(2.*size);
-    cp = orthogonal[c][1];
-    dv += par->dt*GFS_VARIABLE (cell, GFS_VELOCITY (cp))*g[cp]/(2.*size);
-#endif /* FTT_3D */
-
-    cell->s.f[2*c].v     = vl - dv;
-    cell->s.f[2*c + 1].v = vr - dv;
-  }
-}
-#endif
 
 /**
  * gfs_cell_non_advected_face_values:
@@ -404,7 +351,7 @@ void gfs_face_advection_flux (const FttCellFace * face,
   g_return_if_fail (par != NULL);
 
   flux = GFS_FACE_FRACTION (face)*GFS_FACE_NORMAL_VELOCITY (face)*par->dt*
-    gfs_face_upwinded_value (face, FALSE)/ftt_cell_size (face->cell);
+    gfs_face_upwinded_value (face, GFS_FACE_UPWINDING)/ftt_cell_size (face->cell);
   if (!FTT_FACE_DIRECT (face))
     flux = - flux;
   GFS_VARIABLE (face->cell, par->fv->i) -= flux;

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list