[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203
Stephane Popinet
popinet at users.sf.net
Fri May 15 02:53:55 UTC 2009
The following commit has been merged in the upstream branch:
commit 53de916f0ddf91e2b3a879f24c72936eddaabeed
Author: Stephane Popinet <popinet at users.sf.net>
Date: Sat Jan 27 08:33:46 2007 +1100
Stability criterion for gravity waves only takes into account interface cells
darcs-hash:20070126213346-d4795-4a2f232e52c6d7bffaa02e1cb584880dfc3cbf90.gz
diff --git a/src/tension.c b/src/tension.c
index 635ecd6..37ee8e7 100644
--- a/src/tension.c
+++ b/src/tension.c
@@ -68,13 +68,18 @@ typedef struct {
GfsVariable * c;
} StabilityParams;
-static void min_max_alpha (FttCell * cell, StabilityParams * p)
+static void interface_level (FttCell * cell, StabilityParams * p)
{
guint level = ftt_cell_level (cell);
- if (level > p->depth &&
+ if (level > p->depth &&
GFS_VARIABLE (cell, p->c->i) > 1e-3 &&
GFS_VARIABLE (cell, p->c->i) < 1. - 1.e-3)
p->depth = level;
+}
+
+static void min_max_alpha (FttCell * cell, StabilityParams * p)
+{
+ interface_level (cell, p);
if (p->alpha) {
gdouble a = gfs_function_value (p->alpha, cell);
if (a < p->amin) p->amin = a;
@@ -278,10 +283,14 @@ static void gfs_source_tension_write (GtsObject * o, FILE * fp)
static gdouble gfs_source_tension_stability (GfsSourceGeneric * s,
GfsSimulation * sim)
{
- if (GFS_IS_VARIABLE_POSITION (GFS_SOURCE_TENSION (s)->k))
+ if (GFS_IS_VARIABLE_POSITION (GFS_SOURCE_TENSION (s)->k)) {
/* reduced gravity */
- return sqrt (ftt_level_size (gfs_domain_depth (GFS_DOMAIN (sim)))/
- fabs (GFS_SOURCE_TENSION_GENERIC (s)->sigma));
+ StabilityParams p = { G_MAXDOUBLE, -G_MAXDOUBLE, 0 };
+ p.c = GFS_SOURCE_TENSION_GENERIC (s)->c;
+ gfs_domain_cell_traverse (GFS_DOMAIN (sim), FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+ (FttCellTraverseFunc) interface_level, &p);
+ return sqrt (ftt_level_size (p.depth)/fabs (GFS_SOURCE_TENSION_GENERIC (s)->sigma));
+ }
else
/* surface tension */
return gfs_source_tension_generic_stability (s, sim);
--
Gerris Flow Solver
More information about the debian-science-commits
mailing list