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

Stephane Popinet popinet at users.sourceforge.net
Fri May 15 02:51:17 UTC 2009


The following commit has been merged in the upstream branch:
commit 4ab9768e41e8669524c390e39b925955e0f0534a
Author: Stephane Popinet <popinet at users.sourceforge.net>
Date:   Thu Oct 28 09:01:04 2004 +1000

    Added timers for initial refinement and solid fractions (gerris--mainline--0.7--patch-8)
    
    gerris--mainline--0.7--patch-8
    Keywords:
    
    darcs-hash:20041027230104-aabb8-eb8f8eb184a04a0bb4fb3c2903c3ebbaf3144fb6.gz

diff --git a/src/ocean.c b/src/ocean.c
index 2054a5e..545c410 100644
--- a/src/ocean.c
+++ b/src/ocean.c
@@ -359,9 +359,9 @@ static void ocean_run (GfsSimulation * sim)
   div = gfs_variable_from_name (domain->variables, "Div");
   g_assert (div);
 
-  gts_range_init (&domain->mpi_wait);
   while (sim->time.t < sim->time.end &&
 	 sim->time.i < sim->time.iend) {
+    gdouble tstart;
     gboolean implicit;
 
     gfs_domain_cell_traverse (domain,
@@ -369,7 +369,7 @@ static void ocean_run (GfsSimulation * sim)
 			      (FttCellTraverseFunc) gfs_cell_coarse_init, domain);
     gfs_simulation_event (sim, sim->events->items);
 
-    g_timer_start (domain->timer);
+    tstart = g_timer_elapsed (domain->timer, NULL);
 
     gfs_simulation_set_timestep (sim);
 
@@ -445,12 +445,9 @@ static void ocean_run (GfsSimulation * sim)
     sim->time.t = sim->tnext;
     sim->time.i++;
 
-    g_timer_stop (domain->timer);
-    gts_range_add_value (&domain->timestep,
-			 g_timer_elapsed (domain->timer, NULL));
+    gts_range_add_value (&domain->timestep, g_timer_elapsed (domain->timer, NULL) - tstart);
     gts_range_update (&domain->timestep);
-    gts_range_add_value (&domain->size, 
-			 gfs_domain_size (domain, FTT_TRAVERSE_LEAFS, -1));
+    gts_range_add_value (&domain->size, gfs_domain_size (domain, FTT_TRAVERSE_LEAFS, -1));
     gts_range_update (&domain->size);
   }
   gfs_simulation_event (sim, sim->events->items);
diff --git a/src/simulation.c b/src/simulation.c
index 8f43ec8..c88db3f 100644
--- a/src/simulation.c
+++ b/src/simulation.c
@@ -605,15 +605,16 @@ static void simulation_run (GfsSimulation * sim)
       			      &sim->approx_projection_params,
       			      &sim->advection_params);
 
-  gts_range_init (&domain->mpi_wait);
   while (sim->time.t < sim->time.end &&
 	 sim->time.i < sim->time.iend) {
+    gdouble tstart;
+
     gfs_domain_cell_traverse (domain,
 			      FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
 			      (FttCellTraverseFunc) gfs_cell_coarse_init, domain);
     gfs_simulation_event (sim, sim->events->items);
 
-    g_timer_start (domain->timer);
+    tstart = g_timer_elapsed (domain->timer, NULL);
 
     gfs_simulation_set_timestep (sim);
 
@@ -660,12 +661,9 @@ static void simulation_run (GfsSimulation * sim)
     sim->time.t = sim->tnext;
     sim->time.i++;
 
-    g_timer_stop (domain->timer);
-    gts_range_add_value (&domain->timestep,
-			 g_timer_elapsed (domain->timer, NULL));
+    gts_range_add_value (&domain->timestep, g_timer_elapsed (domain->timer, NULL) - tstart);
     gts_range_update (&domain->timestep);
-    gts_range_add_value (&domain->size, 
-			 gfs_domain_size (domain, FTT_TRAVERSE_LEAFS, -1));
+    gts_range_add_value (&domain->size, gfs_domain_size (domain, FTT_TRAVERSE_LEAFS, -1));
     gts_range_update (&domain->size);
   }
   gfs_simulation_event (sim, sim->events->items);
@@ -808,9 +806,13 @@ void gfs_simulation_refine (GfsSimulation * sim)
   guint depth, nf = 0;
   gint l;
   gpointer data[2];
+  GfsDomain * domain;
 
   g_return_if_fail (sim != NULL);
 
+  domain = GFS_DOMAIN (sim);
+
+  gfs_domain_timer_start (domain, "simulation_refine");
   i = sim->refines->items;
   while (i) {
     GfsRefine * refine = i->data;
@@ -821,17 +823,20 @@ void gfs_simulation_refine (GfsSimulation * sim)
     i = next;
   }
 
-  depth = gfs_domain_depth (GFS_DOMAIN (sim));
+  depth = gfs_domain_depth (domain);
   for (l = depth - 2; l >= 0; l--)
-    gfs_domain_cell_traverse (GFS_DOMAIN (sim),
+    gfs_domain_cell_traverse (domain,
 			     FTT_PRE_ORDER, FTT_TRAVERSE_LEVEL, l,
 			     (FttCellTraverseFunc) refine_cell_corner, 
-			      GFS_DOMAIN (sim));
-  gfs_domain_match (GFS_DOMAIN (sim));
+			      domain);
+  gfs_domain_match (domain);
+  gfs_domain_timer_stop (domain, "simulation_refine");
 
   if (sim->surface) {
+    gfs_domain_timer_start (domain, "solid_fractions");
     gts_container_foreach (GTS_CONTAINER (sim), (GtsFunc) box_init_solid_fractions, sim);
-    gfs_domain_match (GFS_DOMAIN (sim));
+    gfs_domain_match (domain);
+    gfs_domain_timer_stop (domain, "solid_fractions");
   }
   data[0] = sim;
   data[1] = &nf;
@@ -1187,5 +1192,8 @@ void gfs_simulation_run (GfsSimulation * sim)
 {
   g_return_if_fail (sim != NULL);
 
+  g_timer_start (GFS_DOMAIN (sim)->timer);
+  gts_range_init (&GFS_DOMAIN (sim)->mpi_wait);
   (* GFS_SIMULATION_CLASS (GTS_OBJECT (sim)->klass)->run) (sim);
+  g_timer_stop (GFS_DOMAIN (sim)->timer);
 }

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list