[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203
Stephane Popinet
s.popinet at niwa.co.nz
Fri May 15 02:52:12 UTC 2009
The following commit has been merged in the upstream branch:
commit 0fa2cf7d39a38f38ed0e77f115dcd73cd677a4d5
Author: Stephane Popinet <s.popinet at niwa.co.nz>
Date: Tue Jul 5 12:32:46 2005 +1000
EventSum takes a function rather than a variable, EventSum2 has been removed
darcs-hash:20050705023246-fbd8f-8f4906d50cdd871a818661ca498d71c76076ff8f.gz
diff --git a/src/event.c b/src/event.c
index e08543d..2e8e8b8 100644
--- a/src/event.c
+++ b/src/event.c
@@ -810,15 +810,23 @@ GfsInitVorticityClass * gfs_init_vorticity_class (void)
/* GfsEventSum: Object */
+static void gfs_event_sum_destroy (GtsObject * o)
+{
+ GfsEventSum * s = GFS_EVENT_SUM (o);
+
+ gts_object_destroy (GTS_OBJECT (s->v));
+
+ (* GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class->destroy) (o);
+}
+
static void gfs_event_sum_write (GtsObject * o, FILE * fp)
{
GfsEventSum * s = GFS_EVENT_SUM (o);
- if (GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class->write)
- (* GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class->write)
- (o, fp);
+ (* GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class->write) (o, fp);
- fprintf (fp, " %s %s", s->v->name, s->sv->name);
+ gfs_function_write (s->v, fp);
+ fprintf (fp, " %s", s->sv->name);
}
static void gfs_event_sum_read (GtsObject ** o, GtsFile * fp)
@@ -826,21 +834,13 @@ static void gfs_event_sum_read (GtsObject ** o, GtsFile * fp)
GfsEventSum * s = GFS_EVENT_SUM (*o);
GfsDomain * domain = GFS_DOMAIN (gfs_object_simulation (s));
- if (GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class->read)
- (* GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class->read)
- (o, fp);
+ (* GTS_OBJECT_CLASS (gfs_event_sum_class ())->parent_class->read) (o, fp);
if (fp->type == GTS_ERROR)
return;
- if (fp->type != GTS_STRING) {
- gts_file_error (fp, "expecting a string (v)");
- return;
- }
- if (!(s->v = gfs_variable_from_name (domain->variables, fp->token->str))) {
- gts_file_error (fp, "unknown variable `%s'", fp->token->str);
+ gfs_function_read (s->v, domain, fp);
+ if (fp->type == GTS_ERROR)
return;
- }
- gts_file_next_token (fp);
if (fp->type != GTS_STRING) {
gts_file_error (fp, "expecting a string (sv)");
@@ -851,7 +851,6 @@ static void gfs_event_sum_read (GtsObject ** o, GtsFile * fp)
gts_file_error (fp, "`%s' is a reserved keyword", fp->token->str);
return;
}
- s->sv->fine_coarse = s->v->fine_coarse;
gts_file_next_token (fp);
}
@@ -881,17 +880,19 @@ static void gfs_event_sum_class_init (GfsEventClass * klass)
{
GTS_OBJECT_CLASS (klass)->read = gfs_event_sum_read;
GTS_OBJECT_CLASS (klass)->write = gfs_event_sum_write;
+ GTS_OBJECT_CLASS (klass)->destroy = gfs_event_sum_destroy;
GFS_EVENT_CLASS (klass)->event = gfs_event_sum_event;
}
static void sum (FttCell * cell, GfsEventSum * s)
{
- GFS_VARIABLE (cell, s->sv->i) += s->dt*GFS_VARIABLE (cell, s->v->i);
+ GFS_VARIABLE (cell, s->sv->i) += s->dt*gfs_function_value (s->v, cell);
}
static void gfs_event_sum_init (GfsEventSum * object)
{
object->last = -1.;
+ object->v = gfs_function_new (gfs_function_class (), 0.);
object->sum = (FttCellTraverseFunc) sum;
}
@@ -916,41 +917,6 @@ GfsEventClass * gfs_event_sum_class (void)
return klass;
}
-/* GfsEventSum2: Object */
-
-static void sum2 (FttCell * cell, GfsEventSum * s)
-{
- gdouble val = GFS_VARIABLE (cell, s->v->i);
-
- GFS_VARIABLE (cell, s->sv->i) += s->dt*val*val;
-}
-
-static void gfs_event_sum2_init (GfsEventSum * object)
-{
- object->sum = (FttCellTraverseFunc) sum2;
-}
-
-GfsEventClass * gfs_event_sum2_class (void)
-{
- static GfsEventClass * klass = NULL;
-
- if (klass == NULL) {
- GtsObjectClassInfo gfs_event_sum2_info = {
- "GfsEventSum2",
- sizeof (GfsEventSum),
- sizeof (GfsEventClass),
- (GtsObjectClassInitFunc) NULL,
- (GtsObjectInitFunc) gfs_event_sum2_init,
- (GtsArgSetFunc) NULL,
- (GtsArgGetFunc) NULL
- };
- klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_event_sum_class ()),
- &gfs_event_sum2_info);
- }
-
- return klass;
-}
-
/* GfsEventHarmonic: Object */
static void gfs_event_harmonic_destroy (GtsObject * o)
diff --git a/src/event.h b/src/event.h
index 82cc579..f5a635d 100644
--- a/src/event.h
+++ b/src/event.h
@@ -151,7 +151,8 @@ typedef struct _GfsEventSum GfsEventSum;
struct _GfsEventSum {
GfsEvent parent;
- GfsVariable * v, * sv;
+ GfsFunction * v;
+ GfsVariable * sv;
FttCellTraverseFunc sum;
gdouble last, dt;
};
@@ -164,10 +165,6 @@ struct _GfsEventSum {
GfsEventClass * gfs_event_sum_class (void);
-/* GfsEventSum2: Header */
-
-GfsEventClass * gfs_event_sum2_class (void);
-
/* GfsEventHarmonic: Header */
typedef struct _GfsEventHarmonic GfsEventHarmonic;
diff --git a/src/init.c b/src/init.c
index 19965b6..463df3f 100644
--- a/src/init.c
+++ b/src/init.c
@@ -175,7 +175,6 @@ void gfs_init (int * argc, char *** argv)
gfs_adapt_curvature_class ();
gfs_adapt_not_box_class ();
gfs_event_sum_class ();
- gfs_event_sum2_class ();
gfs_event_stop_class ();
gfs_event_script_class ();
gfs_source_generic_class ();
--
Gerris Flow Solver
More information about the debian-science-commits
mailing list