[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203
Stephane Popinet
popinet at users.sf.net
Fri May 15 02:53:44 UTC 2009
The following commit has been merged in the upstream branch:
commit 96b984668709ca66b53d10de6b28b66c000b3652
Author: Stephane Popinet <popinet at users.sf.net>
Date: Fri Oct 20 14:00:04 2006 +1000
Fixed VOF advection boundary conditions
darcs-hash:20061020040004-d4795-8f4b9aa7a4c32069502290ad4c9ad33d8ffdadf3.gz
diff --git a/src/vof.c b/src/vof.c
index a5e840f..8b3776c 100644
--- a/src/vof.c
+++ b/src/vof.c
@@ -547,18 +547,28 @@ static gdouble fine_fraction (FttCellFace * face, VofParms * p, gdouble un)
if (f == 0. || f == 1.)
return f;
else {
- FttVector q[2] = {{0., 0., 0.},{1., 1., 1.}};
+ FttCell * cell = face->cell;
+ FttDirection d = face->d;
+
+ if (GFS_CELL_IS_BOUNDARY (cell)) {
+ cell = face->neighbor;
+ d = FTT_OPPOSITE_DIRECTION (d);
+ }
+
FttComponent c;
FttVector m;
- gdouble alpha = GFS_VARIABLE (face->cell, p->alpha->i);
-
+ gdouble alpha = GFS_VARIABLE (cell, p->alpha->i);
+
for (c = 0; c < FTT_DIMENSION; c++)
- (&m.x)[c] = GFS_VARIABLE (face->cell, p->m[c]->i);
- if (!FTT_FACE_DIRECT (face)) {
- (&m.x)[face->d/2] = - (&m.x)[face->d/2];
- alpha += (&m.x)[face->d/2];
+ (&m.x)[c] = GFS_VARIABLE (cell, p->m[c]->i);
+ if (d % 2 != 0) {
+ (&m.x)[d/2] = - (&m.x)[d/2];
+ alpha += (&m.x)[d/2];
}
- (&q[0].x)[face->d/2] = 1. - un; (&q[1].x)[face->d/2] = 1.;
+
+ FttVector q[2] = {{0., 0., 0.},{1., 1., 1.}};
+
+ (&q[0].x)[d/2] = 1. - un; (&q[1].x)[d/2] = 1.;
return plane_volume_shifted (m, alpha, q);
}
}
@@ -664,7 +674,6 @@ void gfs_tracer_vof_advection (GfsDomain * domain,
p.c = (cstart + c) % FTT_DIMENSION;
gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
(FttCellTraverseFunc) vof_plane, &p);
- /* fixme: boundary conditions for (m, alpha) */
gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
(FttCellTraverseFunc) gfs_cell_reset, par->fv);
gfs_domain_face_traverse (domain, p.c,
--
Gerris Flow Solver
More information about the debian-science-commits
mailing list