[cig-commits] r6946 - mc/3D/CitcomCU/branches/inflow-bcs/src
tan2 at geodynamics.org
tan2 at geodynamics.org
Wed May 23 13:30:25 PDT 2007
Author: tan2
Date: 2007-05-23 13:30:18 -0700 (Wed, 23 May 2007)
New Revision: 6946
Modified:
mc/3D/CitcomCU/branches/inflow-bcs/src/Boundary_conditions.c
Log:
Added flags for "flow-through" boundary conditions for the top and bottom boundaries.
When topvbc or botvbc is set to 2, the vertical vbc is dVz/dz=0, the horizontal vbc is dVh/dh=const.
When topvbc or botvbc is set to 3, the vertical vbc is dVz/dz=0, the horizontal
vbc is Vh=const.
Modified: mc/3D/CitcomCU/branches/inflow-bcs/src/Boundary_conditions.c
===================================================================
--- mc/3D/CitcomCU/branches/inflow-bcs/src/Boundary_conditions.c 2007-05-23 20:18:35 UTC (rev 6945)
+++ mc/3D/CitcomCU/branches/inflow-bcs/src/Boundary_conditions.c 2007-05-23 20:30:18 UTC (rev 6946)
@@ -67,6 +67,24 @@
horizontal_bc(E, E->VB, 1, 3, 0.0, SBZ, 0, lv);
horizontal_bc(E, E->VB, 1, 2, 0.0, SBY, 0, lv);
}
+ else if(E->mesh.botvbc == 2)
+ {
+ horizontal_bc(E, E->VB, 1, 1, 0.0, VBX, 0, lv);
+ horizontal_bc(E, E->VB, 1, 3, 0.0, VBZ, 0, lv);
+ horizontal_bc(E, E->VB, 1, 2, 0.0, VBY, 0, lv);
+ horizontal_bc(E, E->VB, 1, 1, E->control.VBXbotval, SBX, 1, lv);
+ horizontal_bc(E, E->VB, 1, 3, 0.0, SBZ, 1, lv);
+ horizontal_bc(E, E->VB, 1, 2, E->control.VBYbotval, SBY, 1, lv);
+ }
+ else if(E->mesh.botvbc == 3)
+ {
+ horizontal_bc(E, E->VB, 1, 1, E->control.VBXbotval, VBX, 1, lv);
+ horizontal_bc(E, E->VB, 1, 3, 0.0, VBZ, 0, lv);
+ horizontal_bc(E, E->VB, 1, 2, E->control.VBYbotval, VBY, 1, lv);
+ horizontal_bc(E, E->VB, 1, 1, 0.0, SBX, 0, lv);
+ horizontal_bc(E, E->VB, 1, 3, 0.0, SBZ, 1, lv);
+ horizontal_bc(E, E->VB, 1, 2, 0.0, SBY, 0, lv);
+ }
if(E->mesh.topvbc == 0)
{
@@ -87,6 +105,25 @@
horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 3, 0.0, SBZ, 0, lv);
horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 2, 0.0, SBY, 0, lv);
}
+ else if(E->mesh.topvbc == 2)
+ {
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 1, 0.0, VBX, 0, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 3, 0.0, VBZ, 0, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 2, 0.0, VBY, 0, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 1, E->control.VBXtopval, SBX, 1, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 3, 0.0, SBZ, 1, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 2, E->control.VBYtopval, SBY, 1, lv);
+ }
+ else if(E->mesh.topvbc == 3)
+ {
+ E->control.VBXtopval = E->control.plate_vel;
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 1, E->control.VBXtopval, VBX, 1, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 3, 0.0, VBZ, 0, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 2, E->control.VBYtopval, VBY, 1, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 1, 0.0, SBX, 0, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 3, 0.0, SBZ, 1, lv);
+ horizontal_bc(E, E->VB, E->mesh.NOZ[lv], 2, 0.0, SBY, 0, lv);
+ }
}
More information about the cig-commits
mailing list