[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