[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203
Stephane Popinet
popinet at users.sf.net
Fri May 15 02:53:48 UTC 2009
The following commit has been merged in the upstream branch:
commit 3f2b41c58f0e6278a7182e023142f9e3d535e36b
Author: Stephane Popinet <popinet at users.sf.net>
Date: Tue Dec 5 10:26:07 2006 +1100
"Non-hydrostatic pressure" implementation
This is useful for two-phase flows with a (flattish) interface, variable
density and gravity. The hydrostatic pressure is substracted off and the
remaining pressure jump across the interface due to gravity is discretised
using the same technique as for surface tension. This guarantees an accurate
solution free of spurious (gravity) currents.
darcs-hash:20061204232607-d4795-5261bed5d97a80a2adf9845f3e9a5d7925bb9d9e.gz
diff --git a/src/poisson.c b/src/poisson.c
index 867122c..9139b89 100644
--- a/src/poisson.c
+++ b/src/poisson.c
@@ -454,32 +454,27 @@ static void tension_coeff (FttCellFace * face, gpointer * data)
GfsSourceTensionGeneric * t = data[1];
gdouble v = lambda2[face->d/2]*t->sigma;
GfsVariable * alpha = data[2], * kappa = GFS_SOURCE_TENSION (data[1])->k;
-
- if (GFS_IS_VARIABLE_CURVATURE (kappa)) {
- gdouble c1 = GFS_VARIABLE (face->cell, t->c->i);
- gdouble c2 = GFS_VARIABLE (face->neighbor, t->c->i);
- gdouble w1 = c1*(1. - c1);
- gdouble w2 = c2*(1. - c2);
- gdouble k1 = GFS_VARIABLE (face->cell, kappa->i);
- gdouble k2 = GFS_VARIABLE (face->neighbor, kappa->i);
+ gdouble c1 = GFS_VARIABLE (face->cell, t->c->i);
+ gdouble c2 = GFS_VARIABLE (face->neighbor, t->c->i);
+ gdouble w1 = c1*(1. - c1);
+ gdouble w2 = c2*(1. - c2);
+ gdouble k1 = GFS_VARIABLE (face->cell, kappa->i);
+ gdouble k2 = GFS_VARIABLE (face->neighbor, kappa->i);
- if (w1 + w2 > 0.)
- v *= (w1*k1 + w2*k2)/(w1 + w2);
- else {
- if (k1 < G_MAXDOUBLE) {
- if (k2 < G_MAXDOUBLE)
- v *= (k1 + k2)/2.;
- else
- v *= k1;
- }
- else if (k2 < G_MAXDOUBLE)
- v *= k2;
+ if (w1 + w2 > 0.)
+ v *= (w1*k1 + w2*k2)/(w1 + w2);
+ else {
+ if (k1 < G_MAXDOUBLE) {
+ if (k2 < G_MAXDOUBLE)
+ v *= (k1 + k2)/2.;
else
- v = 1e6;
+ v *= k1;
}
+ else if (k2 < G_MAXDOUBLE)
+ v *= k2;
+ else
+ v = 1e6;
}
- else
- v *= gfs_face_interpolated_value (face, kappa->i);
if (alpha)
v *= gfs_face_interpolated_value (face, alpha->i);
--
Gerris Flow Solver
More information about the debian-science-commits
mailing list