[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203
Stephane Popinet
popinet at users.sf.net
Fri May 15 02:54:18 UTC 2009
The following commit has been merged in the upstream branch:
commit e42bae8a38c71339aca4f259c76b0b3844042a78
Author: Stephane Popinet <popinet at users.sf.net>
Date: Fri Apr 20 13:44:00 2007 +1000
Bug fix for "flattened" surfaces in RefineSurface
darcs-hash:20070420034400-d4795-68fa9f7c9ad052c328e5e8a121f28ca0fe9ad14d.gz
diff --git a/src/refine.c b/src/refine.c
index 8c9b799..3ef7074 100644
--- a/src/refine.c
+++ b/src/refine.c
@@ -264,45 +264,24 @@ static void refine_surface_destroy (GtsObject * object)
{
GfsRefineSurface * d = GFS_REFINE_SURFACE (object);
- if (d->surface)
- gts_object_destroy (GTS_OBJECT (d->surface));
+ gts_object_destroy (GTS_OBJECT (d->surface));
(* GTS_OBJECT_CLASS (gfs_refine_surface_class ())->parent_class->destroy) (object);
}
static void refine_surface_write (GtsObject * o, FILE * fp)
{
- GfsRefineSurface * d = GFS_REFINE_SURFACE (o);
-
(* GTS_OBJECT_CLASS (gfs_refine_surface_class ())->parent_class->write) (o, fp);
- gfs_surface_write (d->surface, gfs_object_simulation (o), fp);
- if (d->twod)
- fputs (" { twod = 1 }\n", fp);
- else
- fputc ('\n', fp);
+ gfs_surface_write (GFS_REFINE_SURFACE (o)->surface, gfs_object_simulation (o), fp);
}
static void refine_surface_read (GtsObject ** o, GtsFile * fp)
{
- GfsRefineSurface * refine;
-
(* GTS_OBJECT_CLASS (gfs_refine_surface_class ())->parent_class->read) (o, fp);
if (fp->type == GTS_ERROR)
return;
- refine = GFS_REFINE_SURFACE (*o);
- gfs_surface_read (refine->surface, gfs_object_simulation (*o), fp);
- if (fp->type == GTS_ERROR)
- return;
-
- if (fp->type == '{') {
- GtsFileVariable var[] = {
- {GTS_INT, "twod", TRUE},
- {GTS_NONE}
- };
- var[0].data = &refine->twod;
- gts_file_assign_variables (fp, var);
- }
+ gfs_surface_read (GFS_REFINE_SURFACE (*o)->surface, gfs_object_simulation (*o), fp);
}
static void gfs_refine_surface_refine (GfsRefine * refine, GfsSimulation * sim)
@@ -312,7 +291,7 @@ static void gfs_refine_surface_refine (GfsRefine * refine, GfsSimulation * sim)
p.refine = refine;
p.domain = GFS_DOMAIN (sim);
p.surface = GFS_REFINE_SURFACE (refine)->surface;
- if (GFS_REFINE_SURFACE (refine)->twod)
+ if (p.surface->twod)
gfs_domain_traverse_cut_2D (GFS_DOMAIN (sim), GFS_REFINE_SURFACE (refine)->surface,
FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS,
(FttCellTraverseCutFunc) refine_cut_cell, &p);
diff --git a/src/refine.h b/src/refine.h
index 4a4e6e8..b33d82d 100644
--- a/src/refine.h
+++ b/src/refine.h
@@ -76,7 +76,6 @@ struct _GfsRefineSurface {
GfsRefine parent;
GfsSurface * surface;
- gboolean twod;
};
#define GFS_REFINE_SURFACE(obj) GTS_OBJECT_CAST (obj,\
diff --git a/src/surface.c b/src/surface.c
index 93606f6..90c2156 100644
--- a/src/surface.c
+++ b/src/surface.c
@@ -124,7 +124,8 @@ static void surface_read (GtsObject ** o, GtsFile * fp)
{GTS_DOUBLE, "tz", TRUE},
{GTS_DOUBLE, "scale", TRUE},
{GTS_DOUBLE, "angle", TRUE},
- {GTS_INT, "flip", TRUE},
+ {GTS_INT, "flip", TRUE},
+ {GTS_INT, "twod", TRUE},
{GTS_NONE}
};
GtsFileVariable * v = var;
@@ -145,6 +146,7 @@ static void surface_read (GtsObject ** o, GtsFile * fp)
(v++)->data = &surface->angle;
(v++)->data = &surface->flip;
+ (v++)->data = &surface->twod;
gts_file_assign_variables (fp, var);
if (fp->type == GTS_ERROR)
@@ -225,6 +227,8 @@ static void surface_write (GtsObject * o, FILE * fp)
surface->angle);
if (surface->flip)
fputs (" flip = 1\n", fp);
+ if (surface->twod)
+ fputs (" twod = 1\n", fp);
fputc ('}', fp);
}
}
diff --git a/src/surface.h b/src/surface.h
index fd34729..fd01c02 100644
--- a/src/surface.h
+++ b/src/surface.h
@@ -33,11 +33,12 @@ struct _GfsSurface {
GtsVector rotate, scale, translate;
gdouble angle;
gboolean flip;
+ GfsFunction * f;
+ GtsMatrix * m;
/*< public >*/
GtsSurface * s;
- GfsFunction * f;
- GtsMatrix * m;
+ gboolean twod;
};
typedef struct {
--
Gerris Flow Solver
More information about the debian-science-commits
mailing list