[cig-commits] r4231 - mc/3D/CitcomS/trunk/lib
luis at geodynamics.org
luis at geodynamics.org
Fri Aug 4 16:20:37 PDT 2006
Author: luis
Date: 2006-08-04 16:20:36 -0700 (Fri, 04 Aug 2006)
New Revision: 4231
Modified:
mc/3D/CitcomS/trunk/lib/Output_h5.c
Log:
Output viscosity.
Modified: mc/3D/CitcomS/trunk/lib/Output_h5.c
===================================================================
--- mc/3D/CitcomS/trunk/lib/Output_h5.c 2006-08-04 23:13:27 UTC (rev 4230)
+++ mc/3D/CitcomS/trunk/lib/Output_h5.c 2006-08-04 23:20:36 UTC (rev 4231)
@@ -309,7 +309,7 @@
h5create_coord(cap_group, type_id, nodex, nodey, nodez);
h5create_velocity(cap_group, type_id, nodex, nodey, nodez);
h5create_temperature(cap_group, type_id, nodex, nodey, nodez);
- //h5create_viscosity(cap_group, type_id, nodex, nodey, nodez);
+ h5create_viscosity(cap_group, type_id, nodex, nodey, nodez);
//h5create_pressure(cap_group, type_id, nodex, nodey, nodez);
//h5create_stress(cap_group, type_id, nodex, nodey, nodez);
@@ -1142,7 +1142,62 @@
void h5output_viscosity(struct All_variables *E, int cycles)
{
#ifdef USE_HDF5
+ hid_t cap;
+ hid_t dataset;
+ herr_t status;
+ int i, j, k;
+ int n, nx, ny, nz;
+ int m, mx, my, mz;
+ int p, px, py, pz;
+
+ int lev = E->mesh.levmax;
+
+ int nodex = E->mesh.nox;
+ int nodey = E->mesh.noy;
+ int nodez = E->mesh.noz;
+
+ int nprocx = E->parallel.nprocx;
+ int nprocy = E->parallel.nprocy;
+ int nprocz = E->parallel.nprocz;
+
+ p = E->parallel.me;
+ px = E->parallel.me_loc[1];
+ py = E->parallel.me_loc[2];
+ pz = E->parallel.me_loc[3];
+
+ nx = E->lmesh.nox;
+ ny = E->lmesh.noy;
+ nz = E->lmesh.noz;
+
+ mx = (p == nprocx-1) ? nx : nx-1;
+ my = (p == nprocy-1) ? ny : ny-1;
+ mz = (p == nprocz-1) ? nz : nz-1;
+
+ /* prepare the data -- change citcom yxz order to xyz order */
+ for(i = 0; i < mx; i++)
+ {
+ for(j = 0; j < my; j++)
+ {
+ for(k = 0; k < mz; k++)
+ {
+ n = k + i*nz + j*nz*nx;
+ m = k + j*mz + i*mz*my;
+ E->hdf5.scalar3d[m] = E->VI[lev][1][n+1];
+ }
+ }
+ }
+
+ printf("h5output_viscosity()\n");
+
+ cap = h5open_cap(E);
+ dataset = H5Dopen(cap, "viscosity");
+ h5write_field(dataset, H5T_NATIVE_DOUBLE, E->hdf5.scalar3d,
+ E->hdf5.count+1, nodex, nodey, nodez, 0, E);
+
+ /* release resources */
+ status = H5Dclose(dataset);
+ status = H5Gclose(cap);
#endif
}
More information about the cig-commits
mailing list