[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203
Stephane Popinet
popinet at users.sf.net
Fri May 15 02:53:36 UTC 2009
The following commit has been merged in the upstream branch:
commit d59affddb9d8871f7797171b7aa9f9b91aac3ae6
Author: Stephane Popinet <popinet at users.sf.net>
Date: Fri Feb 3 12:43:15 2006 +1100
Renamed VariableLevelSet as VariableDistance
darcs-hash:20060203014315-d4795-94b66b3575cac38c3d9334623f902f0979d99fbd.gz
diff --git a/src/levelset.c b/src/levelset.c
index 0f200b6..fc00c08 100644
--- a/src/levelset.c
+++ b/src/levelset.c
@@ -21,13 +21,13 @@
#include "levelset.h"
#include "vof.h"
-/* GfsVariableLevelSet: object */
+/* GfsVariableDistance: object */
-static void variable_levelset_read (GtsObject ** o, GtsFile * fp)
+static void variable_distance_read (GtsObject ** o, GtsFile * fp)
{
GfsDomain * domain;
- (* GTS_OBJECT_CLASS (gfs_variable_levelset_class ())->parent_class->read) (o, fp);
+ (* GTS_OBJECT_CLASS (gfs_variable_distance_class ())->parent_class->read) (o, fp);
if (fp->type == GTS_ERROR)
return;
@@ -36,26 +36,19 @@ static void variable_levelset_read (GtsObject ** o, GtsFile * fp)
return;
}
domain = GFS_DOMAIN (gfs_object_simulation (*o));
- if (!(GFS_VARIABLE_LEVELSET (*o)->v =
+ if (!(GFS_VARIABLE_DISTANCE (*o)->v =
gfs_variable_from_name (domain->variables, fp->token->str))) {
gts_file_error (fp, "unknown variable `%s'", fp->token->str);
return;
}
gts_file_next_token (fp);
-
- if (fp->type != GTS_INT && fp->type != GTS_FLOAT) {
- gts_file_error (fp, "expecting a number (level)");
- return;
- }
- GFS_VARIABLE_LEVELSET (*o)->level = atof (fp->token->str);
- gts_file_next_token (fp);
}
-static void variable_levelset_write (GtsObject * o, FILE * fp)
+static void variable_distance_write (GtsObject * o, FILE * fp)
{
- (* GTS_OBJECT_CLASS (gfs_variable_levelset_class ())->parent_class->write) (o, fp);
+ (* GTS_OBJECT_CLASS (gfs_variable_distance_class ())->parent_class->write) (o, fp);
- fprintf (fp, " %s %g", GFS_VARIABLE_LEVELSET (o)->v->name, GFS_VARIABLE_LEVELSET (o)->level);
+ fprintf (fp, " %s", GFS_VARIABLE_DISTANCE (o)->v->name);
}
static gdouble vof_distance2 (FttCell * cell, GtsPoint * t, gpointer v)
@@ -89,9 +82,9 @@ static gdouble vof_distance2 (FttCell * cell, GtsPoint * t, gpointer v)
}
}
-static void levelset (FttCell * cell, GfsVariable * v)
+static void distance (FttCell * cell, GfsVariable * v)
{
- GfsVariableLevelSet * l = GFS_VARIABLE_LEVELSET (v);
+ GfsVariableDistance * l = GFS_VARIABLE_DISTANCE (v);
GtsPoint p;
gdouble d2;
@@ -100,59 +93,59 @@ static void levelset (FttCell * cell, GfsVariable * v)
GFS_VARIABLE (cell, v->i) = GFS_VARIABLE (cell, l->v->i) > 0.5 ? sqrt (d2) : -sqrt (d2);
}
-static void variable_levelset_event_half (GfsEvent * event, GfsSimulation * sim)
+static void variable_distance_event_half (GfsEvent * event, GfsSimulation * sim)
{
GfsDomain * domain = GFS_DOMAIN (sim);
- GfsVariableLevelSet * v = GFS_VARIABLE_LEVELSET (event);
+ GfsVariableDistance * v = GFS_VARIABLE_DISTANCE (event);
- gfs_domain_timer_start (domain, "levelset");
+ gfs_domain_timer_start (domain, "distance");
gfs_domain_cell_traverse (domain, FTT_POST_ORDER, FTT_TRAVERSE_NON_LEAFS, -1,
(FttCellTraverseFunc) v->v->fine_coarse, v->v);
gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
- (FttCellTraverseFunc) levelset, event);
+ (FttCellTraverseFunc) distance, event);
gfs_domain_bc (domain, FTT_TRAVERSE_LEAFS, -1, GFS_VARIABLE1 (event));
- gfs_domain_timer_stop (domain, "levelset");
+ gfs_domain_timer_stop (domain, "distance");
}
-static gboolean variable_levelset_event (GfsEvent * event, GfsSimulation * sim)
+static gboolean variable_distance_event (GfsEvent * event, GfsSimulation * sim)
{
- if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_variable_levelset_class ())->parent_class)->event)
+ if ((* GFS_EVENT_CLASS (GTS_OBJECT_CLASS (gfs_variable_distance_class ())->parent_class)->event)
(event, sim)) {
- if (!GFS_VARIABLE_LEVELSET (event)->first_done) {
- variable_levelset_event_half (event, sim);
- GFS_VARIABLE_LEVELSET (event)->first_done = TRUE;
+ if (!GFS_VARIABLE_DISTANCE (event)->first_done) {
+ variable_distance_event_half (event, sim);
+ GFS_VARIABLE_DISTANCE (event)->first_done = TRUE;
}
return TRUE;
}
return FALSE;
}
-static void variable_levelset_class_init (GtsObjectClass * klass)
+static void variable_distance_class_init (GtsObjectClass * klass)
{
- klass->read = variable_levelset_read;
- klass->write = variable_levelset_write;
- GFS_EVENT_CLASS (klass)->event = variable_levelset_event;
- GFS_EVENT_CLASS (klass)->event_half = variable_levelset_event_half;
+ klass->read = variable_distance_read;
+ klass->write = variable_distance_write;
+ GFS_EVENT_CLASS (klass)->event = variable_distance_event;
+ GFS_EVENT_CLASS (klass)->event_half = variable_distance_event_half;
}
-GfsVariableClass * gfs_variable_levelset_class (void)
+GfsVariableClass * gfs_variable_distance_class (void)
{
static GfsVariableClass * klass = NULL;
if (klass == NULL) {
- GtsObjectClassInfo gfs_variable_levelset_info = {
- "GfsVariableLevelSet",
- sizeof (GfsVariableLevelSet),
+ GtsObjectClassInfo gfs_variable_distance_info = {
+ "GfsVariableDistance",
+ sizeof (GfsVariableDistance),
sizeof (GfsVariableClass),
- (GtsObjectClassInitFunc) variable_levelset_class_init,
+ (GtsObjectClassInitFunc) variable_distance_class_init,
(GtsObjectInitFunc) NULL,
(GtsArgSetFunc) NULL,
(GtsArgGetFunc) NULL
};
klass = gts_object_class_new (GTS_OBJECT_CLASS (gfs_variable_class ()),
- &gfs_variable_levelset_info);
+ &gfs_variable_distance_info);
}
return klass;
@@ -178,8 +171,8 @@ static void variable_curvature_read (GtsObject ** o, GtsFile * fp)
gts_file_error (fp, "unknown variable `%s'", fp->token->str);
return;
}
- if (!GFS_IS_VARIABLE_LEVELSET (GFS_VARIABLE_CURVATURE (*o)->d)) {
- gts_file_error (fp, "variable `%s' is not a GfsVariableLevelSet", fp->token->str);
+ if (!GFS_IS_VARIABLE_DISTANCE (GFS_VARIABLE_CURVATURE (*o)->d)) {
+ gts_file_error (fp, "variable `%s' is not a GfsVariableDistance", fp->token->str);
return;
}
gts_file_next_token (fp);
@@ -236,7 +229,7 @@ static void interface_curvature (FttCell * cell, gpointer * data)
{
GfsVariable * v = data[1];
GfsVariableCurvature * k = GFS_VARIABLE_CURVATURE (v);
- gdouble f = GFS_VARIABLE (cell, GFS_VARIABLE_LEVELSET (k->d)->v->i);
+ gdouble f = GFS_VARIABLE (cell, GFS_VARIABLE_DISTANCE (k->d)->v->i);
if (GFS_IS_FULL (f))
GFS_VARIABLE (cell, v->i) = G_MAXDOUBLE;
diff --git a/src/levelset.h b/src/levelset.h
index ceed8a8..36eb5e2 100644
--- a/src/levelset.h
+++ b/src/levelset.h
@@ -26,27 +26,26 @@ extern "C" {
#include "variable.h"
-/* GfsVariableLevelSet: header */
+/* GfsVariableDistance: header */
-typedef struct _GfsVariableLevelSet GfsVariableLevelSet;
+typedef struct _GfsVariableDistance GfsVariableDistance;
-struct _GfsVariableLevelSet {
+struct _GfsVariableDistance {
/*< private >*/
GfsVariable parent;
gboolean first_done;
/*< public >*/
GfsVariable * v;
- gdouble level;
};
-#define GFS_VARIABLE_LEVELSET(obj) GTS_OBJECT_CAST (obj,\
- GfsVariableLevelSet,\
- gfs_variable_levelset_class ())
-#define GFS_IS_VARIABLE_LEVELSET(obj) (gts_object_is_from_class (obj,\
- gfs_variable_levelset_class ()))
+#define GFS_VARIABLE_DISTANCE(obj) GTS_OBJECT_CAST (obj,\
+ GfsVariableDistance,\
+ gfs_variable_distance_class ())
+#define GFS_IS_VARIABLE_DISTANCE(obj) (gts_object_is_from_class (obj,\
+ gfs_variable_distance_class ()))
-GfsVariableClass * gfs_variable_levelset_class (void);
+GfsVariableClass * gfs_variable_distance_class (void);
/* GfsVariableCurvature: header */
diff --git a/test/spurious/spurious.gfs b/test/spurious/spurious.gfs
index 4b9020c..c830ae5 100644
--- a/test/spurious/spurious.gfs
+++ b/test/spurious/spurious.gfs
@@ -67,7 +67,7 @@
VariableTracer {} T { scheme = vof }
VariableFiltered {} T1 T 1
- VariableLevelSet {} L T 0.5
+ VariableDistance {} L T
VariableCurvature {} K L
SourceTension {} T K
SourceDiffusion {} U MU
diff --git a/test/spurious/spurious.sh b/test/spurious/spurious.sh
index a67043c..6539b06 100755
--- a/test/spurious/spurious.sh
+++ b/test/spurious/spurious.sh
@@ -2,8 +2,8 @@ if ! $donotrun; then
shapes ellipse | transform --scale 0.8 > circle.gts
for La in 12000 1200 120; do
mu=`echo $La | awk '{print sqrt (0.4/$1)}'`
- tmax=`echo $mu | awk '{print 500.*$1*0.4}'`
- if sed "s/LEVEL/6/g" < $1 |\
+ tmax=`echo $mu | awk '{print 1000.*$1*0.4}'`
+ if sed "s/LEVEL/5/g" < $1 |\
sed "s/MU/$mu/g" |\
sed "s/TMAX/$tmax/g" | gerris2D - | awk -v mu=$mu -v D=0.4 '{
print $3/(mu*D) " " $9*mu;
@@ -17,7 +17,7 @@ if ! $donotrun; then
for level in 5 6 7; do
La=12000
mu=`echo $La | awk '{print sqrt (0.4/$1)}'`
- tmax=`echo $mu | awk '{print 500.*$1*0.4}'`
+ tmax=`echo $mu | awk '{print 1000.*$1*0.4}'`
if sed "s/LEVEL/$level/g" < $1 |\
sed "s/MU/$mu/g" |\
sed "s/TMAX/$tmax/g" | gerris2D - | awk -v mu=$mu -v level=$level -v D=0.4 '{
--
Gerris Flow Solver
More information about the debian-science-commits
mailing list