[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