[cig-commits] r15455 - mc/3D/CitcomS/trunk/lib

danb at geodynamics.org danb at geodynamics.org
Fri Jul 10 14:08:14 PDT 2009


Author: danb
Date: 2009-07-10 14:08:14 -0700 (Fri, 10 Jul 2009)
New Revision: 15455

Modified:
   mc/3D/CitcomS/trunk/lib/Process_buoyancy.c
Log:
include density (rho) scaling in convective heat flux (necessary for compressible flow)

Modified: mc/3D/CitcomS/trunk/lib/Process_buoyancy.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Process_buoyancy.c	2009-07-10 21:05:02 UTC (rev 15454)
+++ mc/3D/CitcomS/trunk/lib/Process_buoyancy.c	2009-07-10 21:08:14 UTC (rev 15455)
@@ -53,9 +53,9 @@
 void heat_flux(E)
     struct All_variables *E;
 {
-    int m,e,el,i,j,node,lnode;
+    int m,e,el,i,j,node,lnode,nz;
     float *flux[NCS],*SU[NCS],*RU[NCS];
-    float VV[4][9],u[9],T[9],dTdz[9],area,uT;
+    float VV[4][9],u[9],T[9],dTdz[9],rho[9],area,uT;
     float *sum_h;
 
     void velo_from_element();
@@ -91,7 +91,10 @@
         u[i] = 0.0;
         T[i] = 0.0;
         dTdz[i] = 0.0;
+        rho[i] = 0.0;
         for(j=1;j<=ends;j++)  {
+          nz = ((E->ien[m][e].node[j]-1) % E->lmesh.noz)+1;
+          rho[i] += E->refstate.rho[nz]*E->N.vpt[GNVINDEX(j,i)];
           u[i] += VV[3][j]*E->N.vpt[GNVINDEX(j,i)];
           T[i] += E->T[m][E->ien[m][e].node[j]]*E->N.vpt[GNVINDEX(j,i)];
           dTdz[i] += -E->T[m][E->ien[m][e].node[j]]*E->gNX[m][e].vpt[GNVXINDEX(2,j,i)];
@@ -102,7 +105,7 @@
       area = 0.0;
       for(i=1;i<=vpts;i++)   {
         /* XXX: missing unit conversion, heat capacity and thermal conductivity */
-        uT += u[i]*T[i]*E->gDA[m][e].vpt[i] + dTdz[i]*E->gDA[m][e].vpt[i];
+        uT += rho[i]*u[i]*T[i]*E->gDA[m][e].vpt[i] + dTdz[i]*E->gDA[m][e].vpt[i];
         }
 
       uT /= E->eco[m][e].area;



More information about the CIG-COMMITS mailing list