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

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


The following commit has been merged in the upstream branch:
commit 72603e38d13741eb08af00e8fb2a7543e2510e28
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Mon Sep 8 08:10:27 2008 +1000

    Fixes for missing dimensioning
    
    VariableCurvature, VariableDistance, VariableFiltered, SourceTension.
    
    darcs-hash:20080907221027-d4795-2f58d0b84fb763c3e51ebe4362e81627252eb38b.gz

diff --git a/src/levelset.c b/src/levelset.c
index 0142072..4fce173 100644
--- a/src/levelset.c
+++ b/src/levelset.c
@@ -191,6 +191,11 @@ static void variable_distance_class_init (GtsObjectClass * klass)
   GFS_EVENT_CLASS (klass)->event_half = variable_distance_event_half;
 }
 
+static void variable_distance_init (GfsVariable * v)
+{
+  v->units = 1.;
+}
+
 GfsVariableClass * gfs_variable_distance_class (void)
 {
   static GfsVariableClass * klass = NULL;
@@ -201,7 +206,7 @@ GfsVariableClass * gfs_variable_distance_class (void)
       sizeof (GfsVariableDistance),
       sizeof (GfsVariableClass),
       (GtsObjectClassInitFunc) variable_distance_class_init,
-      (GtsObjectInitFunc) NULL,
+      (GtsObjectInitFunc) variable_distance_init,
       (GtsArgSetFunc) NULL,
       (GtsArgGetFunc) NULL
     };
diff --git a/src/tension.c b/src/tension.c
index 5935cca..e828dcb 100644
--- a/src/tension.c
+++ b/src/tension.c
@@ -45,14 +45,15 @@ static void gfs_source_tension_generic_read (GtsObject ** o, GtsFile * fp)
   }
   gts_file_next_token (fp);
 
-  s->sigma = gfs_read_constant (fp, domain);
+  s->sigma = gfs_read_constant (fp, domain)/pow (GFS_SIMULATION (domain)->physical_params.L, 3.);
 }
 
 static void gfs_source_tension_generic_write (GtsObject * o, FILE * fp)
 {
   GfsSourceTensionGeneric * t = GFS_SOURCE_TENSION_GENERIC (o);
   (* GTS_OBJECT_CLASS (gfs_source_tension_generic_class ())->parent_class->write) (o, fp);
-  fprintf (fp, " %s %g", t->c->name, t->sigma);
+  fprintf (fp, " %s %g", t->c->name, 
+	   t->sigma*pow (gfs_object_simulation (o)->physical_params.L, 3.));
 }
 
 typedef struct {
@@ -692,6 +693,7 @@ static void variable_curvature_init (GfsVariable * v)
 {
   v->coarse_fine = curvature_coarse_fine;
   v->fine_coarse = curvature_fine_coarse;
+  v->units = -1.;
 }
 
 GfsVariableClass * gfs_variable_curvature_class (void)
@@ -803,6 +805,11 @@ static void variable_position_class_init (GtsObjectClass * klass)
   GFS_EVENT_CLASS (klass)->event = variable_position_event;
 }
 
+static void variable_position_init (GfsVariable * v)
+{
+  v->units = 1.;
+}
+
 GfsVariableClass * gfs_variable_position_class (void)
 {
   static GfsVariableClass * klass = NULL;
@@ -813,7 +820,7 @@ GfsVariableClass * gfs_variable_position_class (void)
       sizeof (GfsVariablePosition),
       sizeof (GfsVariableClass),
       (GtsObjectClassInitFunc) variable_position_class_init,
-      (GtsObjectInitFunc) NULL,
+      (GtsObjectInitFunc) variable_position_init,
       (GtsArgSetFunc) NULL,
       (GtsArgGetFunc) NULL
     };
diff --git a/src/variable.c b/src/variable.c
index 606fd6b..b7ad720 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -376,6 +376,8 @@ static void variable_filtered_read (GtsObject ** o, GtsFile * fp)
   if (GFS_VARIABLE1 (v)->description)
     g_free (GFS_VARIABLE1 (v)->description);
   GFS_VARIABLE1 (v)->description = g_strjoin (" ", "Variable", v->v->name, "filtered", NULL);
+
+  GFS_VARIABLE1 (v)->units = v->v->units;
 }
 
 static void variable_filtered_write (GtsObject * o, FILE * fp)

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list