[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203
Stephane Popinet
stephane.popinet at paradise.net.nz
Fri May 15 02:51:33 UTC 2009
The following commit has been merged in the upstream branch:
commit 99c10071546be630d8ed47fe4b2b1a0bfa89612f
Author: Stephane Popinet <stephane.popinet at paradise.net.nz>
Date: Sun Jan 30 14:26:21 2005 +1100
Tracers now take advection/diffusion parameters
darcs-hash:20050130032621-fa380-be35bb1fc70ccd4483b4b950010177bc3cff1962.gz
diff --git a/src/advection.c b/src/advection.c
index 7c36ba6..4ed245d 100644
--- a/src/advection.c
+++ b/src/advection.c
@@ -945,10 +945,14 @@ void gfs_advection_params_read (GfsAdvectionParams * par, GtsFile * fp)
par->scheme = GFS_NONE;
else if (!strcmp (scheme, "vof")) {
par->scheme = GFS_VOF;
- if (fp->type != GTS_ERROR && (par->cfl <= 0. || par->cfl > 0.5))
- gts_file_variable_error (fp, var, "cfl",
- "cfl `%g' is out of range `]0,0.5]'",
- par->cfl);
+ if (par->cfl > 0.5) {
+ if (fp->type != GTS_ERROR && var[0].set)
+ gts_file_variable_error (fp, var, "cfl",
+ "cfl `%g' is out of range `]0,0.5]'",
+ par->cfl);
+ else
+ par->cfl = 0.5;
+ }
}
else if (fp->type != GTS_ERROR)
gts_file_variable_error (fp, var, "scheme",
diff --git a/src/variable.c b/src/variable.c
index 8f85f79..f0e62ce 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -239,6 +239,34 @@ GfsVariable * gfs_variables_from_list (GfsVariable * variables,
/* GfsVariableTracer: object */
+static void variable_tracer_read (GtsObject ** o, GtsFile * fp)
+{
+ (* GTS_OBJECT_CLASS (gfs_variable_tracer_class ())->parent_class->read) (o, fp);
+ if (fp->type == GTS_ERROR)
+ return;
+
+ if (fp->type == '{')
+ gfs_advection_params_read (&GFS_VARIABLE_TRACER (*o)->advection, fp);
+ if (fp->type == '{')
+ gfs_multilevel_params_read (&GFS_VARIABLE_TRACER (*o)->diffusion, fp);
+}
+
+static void variable_tracer_write (GtsObject * o, FILE * fp)
+{
+ (* GTS_OBJECT_CLASS (gfs_variable_tracer_class ())->parent_class->write) (o, fp);
+
+ fputc (' ', fp);
+ gfs_advection_params_write (&GFS_VARIABLE_TRACER (o)->advection, fp);
+ fputc (' ', fp);
+ gfs_multilevel_params_write (&GFS_VARIABLE_TRACER (o)->diffusion, fp);
+}
+
+static void variable_tracer_class_init (GtsObjectClass * klass)
+{
+ klass->read = variable_tracer_read;
+ klass->write = variable_tracer_write;
+}
+
static void variable_tracer_init (GfsVariableTracer * v)
{
gfs_advection_params_init (&v->advection);
@@ -260,7 +288,7 @@ GfsVariableClass * gfs_variable_tracer_class (void)
"GfsVariableTracer",
sizeof (GfsVariableTracer),
sizeof (GfsVariableClass),
- (GtsObjectClassInitFunc) NULL,
+ (GtsObjectClassInitFunc) variable_tracer_class_init,
(GtsObjectInitFunc) variable_tracer_init,
(GtsArgSetFunc) NULL,
(GtsArgGetFunc) NULL
--
Gerris Flow Solver
More information about the debian-science-commits
mailing list