⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 write_blocks_chombo_r8.c

📁 做网格的好程序
💻 C
📖 第 1 页 / 共 3 页
字号:
	  ivar2 = ivar2 + 1;	} /* end if (checkp */      } /* end ivar loop */    } /* end if (nvar_chk_fc */    /* Edge Centered Data */    if (*nvar_chk_ec > 0) {            /* unk_e_x */      ivar2 = 0;      for (ivar=0; ivar < *nbndvare; ivar++) {	if (checkp_on_ec[ivar] == 1) {	  /* Open "data:datatype=0" dataset */	  dims[0] = *nxb * *nyb * *nzb;	  dataspace_id = H5Screate_simple(1, dims, NULL);	  dset_id = H5Dopen(group_id, "data:datatype=0");	  	  filespace = H5Dget_space(dset_id);	  H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, 			      NULL, count, NULL);	  offset[0] = offset[0] + count[0];     	  k2 = 0;	  for (k = kstart; k < kend; k++) {	    j2 = 0;	    for (j = jstart; j < jend; j++) {	      i2 = 0;	      for (i = istart; i < iend; i++) {				unk_t[i2 + 		      nx2 * j2 + 		      nx2 * ny2 * k2] = 0.;		for (kk = 0; kk < 2; kk++) {		for (jj = 0; jj < 2; jj++) {		int udim[4]; int it[4];		get_udim_chombo (*nbndvare, *nx, *ny+1, *nz+k3d, ivar, i, j+jj, k+kk*k3d, iorder, udim, it);		  unk_t[i2 + 			nx2 * j2 + 			nx2 * ny2 * k2] =		    unk_t[i2 + 			  nx2 * j2 + 			  nx2 * ny2 * k2] +		    unk_e_x[(udim[3] * udim[2] * udim[1] * udim[0] * lb2) + 			    (udim[2] * udim[1] * udim[0] * it[3]) + 			    (udim[1] * udim[0] * it[2]) + 			    (udim[0] * it[1]) + 			    it[0]];		}	        }		unk_t[i2 + 		      nx2 * j2 + 		      nx2 * ny2 * k2] =		  unk_t[i2 + 			nx2 * j2 + 			nx2 * ny2 * k2] / 4.;		i2 = i2 + 1;	      } /* end i loop */	      j2 = j2 + 1;	    } /* end j loop */	    k2 = k2 + 1;	  } /* end k loop */	  status = H5Dwrite(dset_id, H5T_NATIVE_FLOAT, dataspace_id, filespace, 			    plist_id, unk_t);	  H5Sclose(dataspace_id);	  H5Dclose(dset_id);	  H5Sclose(filespace);	  ivar2 = ivar2 + 1;	} /* end if (checkp */      } /* end ivar loop */      /* unk_e_y */      ivar2 = 0;      for (ivar=0; ivar < *nbndvare; ivar++) {	if (checkp_on_ec[ivar] == 1) {	  /* Open "data:datatype=0" dataset */	  dims[0] = *nxb * *nyb * *nzb;	  dataspace_id = H5Screate_simple(1, dims, NULL);	  dset_id = H5Dopen(group_id, "data:datatype=0");	  	  filespace = H5Dget_space(dset_id);	  H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, 			      NULL, count, NULL);	  offset[0] = offset[0] + count[0];     	  k2 = 0;	  for (k = kstart; k < kend; k++) {	    j2 = 0;	    for (j = jstart; j < jend; j++) {	      i2 = 0;	      for (i = istart; i < iend; i++) {				unk_t[i2 + 		      nx2 * j2 + 		      nx2 * ny2 * k2] = 0.;		for (kk = 0; kk < 2; kk++) {		for (ii = 0; ii < 2; ii++) {		int udim[4]; int it[4];		get_udim_chombo (*nbndvare, *nx+1, *ny, *nz+k3d, ivar, i+ii, j, k+kk*k3d, iorder, udim, it);		  unk_t[i2 + 			nx2 * j2 + 			nx2 * ny2 * k2] =		    unk_t[i2 + 			  nx2 * j2 + 			  nx2 * ny2 * k2] +		    unk_e_y[(udim[3] * udim[2] * udim[1] * udim[0] * lb2) + 			    (udim[2] * udim[1] * udim[0] * it[3]) + 			    (udim[1] * udim[0] * it[2]) + 			    (udim[0] * it[1]) + 			    it[0]];		}	        }		unk_t[i2 + 		      nx2 * j2 + 		      nx2 * ny2 * k2] =		  unk_t[i2 + 			nx2 * j2 + 			nx2 * ny2 * k2] / 4.;		i2 = i2 + 1;	      } /* end i loop */	      j2 = j2 + 1;	    } /* end j loop */	    k2 = k2 + 1;	  } /* end k loop */	  status = H5Dwrite(dset_id, H5T_NATIVE_FLOAT, dataspace_id, filespace, 			    plist_id, unk_t);	  H5Sclose(dataspace_id);	  H5Dclose(dset_id);	  H5Sclose(filespace);	  ivar2 = ivar2 + 1;	} /* end if (checkp */      } /* end ivar loop */      /* unk_e_z */      ivar2 = 0;      for (ivar=0; ivar < *nbndvare; ivar++) {	if (checkp_on_ec[ivar] == 1) {	  /* Open "data:datatype=0" dataset */	  dims[0] = *nxb * *nyb * *nzb;	  dataspace_id = H5Screate_simple(1, dims, NULL);	  dset_id = H5Dopen(group_id, "data:datatype=0");	  	  filespace = H5Dget_space(dset_id);	  H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, 			      NULL, count, NULL);	  offset[0] = offset[0] + count[0];     	  k2 = 0;	  for (k = kstart; k < kend; k++) {	    j2 = 0;	    for (j = jstart; j < jend; j++) {	      i2 = 0;	      for (i = istart; i < iend; i++) {				unk_t[i2 + 		      nx2 * j2 + 		      nx2 * ny2 * k2] = 0.;		for (jj = 0; jj < 2; jj++) {		for (ii = 0; ii < 2; ii++) {		int udim[4]; int it[4];		get_udim_chombo (*nbndvare, *nx+1, *ny+1, *nz, ivar, i+ii, j+jj, k, iorder, udim, it);		  unk_t[i2 + 			nx2 * j2 + 			nx2 * ny2 * k2] =		    unk_t[i2 + 			  nx2 * j2 + 			  nx2 * ny2 * k2] +		    unk_e_z[(udim[3] * udim[2] * udim[1] * udim[0] * lb2) + 			    (udim[2] * udim[1] * udim[0] * it[3]) + 			    (udim[1] * udim[0] * it[2]) + 			    (udim[0] * it[1]) + 			    it[0]];		}	        }		unk_t[i2 + 		      nx2 * j2 + 		      nx2 * ny2 * k2] =		  unk_t[i2 + 			nx2 * j2 + 			nx2 * ny2 * k2] / 4.;		i2 = i2 + 1;	      } /* end i loop */	      j2 = j2 + 1;	    } /* end j loop */	    k2 = k2 + 1;	  } /* end k loop */	  status = H5Dwrite(dset_id, H5T_NATIVE_FLOAT, dataspace_id, filespace, 			    plist_id, unk_t);	  H5Sclose(dataspace_id);	  H5Dclose(dset_id);	  H5Sclose(filespace);	  ivar2 = ivar2 + 1;	} /* end if (checkp */      } /* end ivar loop */    } /* end if (nvar_chk_ec */    /* Node Centered Data */    if (*nvar_chk_nc > 0) {      /* unk_n */      ivar2 = 0;      for (ivar=0; ivar < *nbndvarc; ivar++) {	if (checkp_on_nc[ivar] == 1) {	  /* Open "data:datatype=0" dataset */	  dims[0] = *nxb * *nyb * *nzb;	  dataspace_id = H5Screate_simple(1, dims, NULL);	  dset_id = H5Dopen(group_id, "data:datatype=0");	  	  filespace = H5Dget_space(dset_id);	  H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, 			      NULL, count, NULL);	  offset[0] = offset[0] + count[0];     	  k2 = 0;	  for (k = kstart; k < kend; k++) {	    j2 = 0;	    for (j = jstart; j < jend; j++) {	      i2 = 0;	      for (i = istart; i < iend; i++) {				unk_t[i2 + 		      nx2 * j2 + 		      nx2 * ny2 * k2] = 0.;		for (kk = 0; kk < 2; kk++) {		for (jj = 0; jj < 2; jj++) {		for (ii = 0; ii < 2; ii++) {		int udim[4]; int it[4];		get_udim_chombo (*nbndvarc, *nx+1, *ny+1, *nz+k3d, ivar, i+ii, j+jj, k+kk*k3d, iorder, udim, it);		  unk_t[i2 + 			nx2 * j2 + 			nx2 * ny2 * k2] =		    unk_t[i2 + 			  nx2 * j2 + 			  nx2 * ny2 * k2] +		    unk_n[(udim[3] * udim[2] * udim[1] * udim[0] * lb2) + 			  (udim[2] * udim[1] * udim[0] * it[3]) + 			  (udim[1] * udim[0] * it[2]) + 			  (udim[0] * it[1]) + 			  it[0]];		}	        }		}		unk_t[i2 + 		      nx2 * j2 + 		      nx2 * ny2 * k2] =		  unk_t[i2 + 			nx2 * j2 + 			nx2 * ny2 * k2] / 8.;		i2 = i2 + 1;	      } /* end i loop */	      j2 = j2 + 1;	    } /* end j loop */	    k2 = k2 + 1;	  } /* end k loop */	  status = H5Dwrite(dset_id, H5T_NATIVE_FLOAT, dataspace_id, filespace, 			    plist_id, unk_t);	  H5Sclose(dataspace_id);	  H5Dclose(dset_id);	  H5Sclose(filespace);	  ivar2 = ivar2 + 1;	} /* end if (checkp */      } /* end ivar loop */    } /* end if (nvar_chk_nc */    /* close group data space and data */    H5Gclose(group_id);  } /* end loop over blocks */  H5Pclose(plist_id);  H5Tclose(prob_domain_type_id);}#ifdef UNDERSCOREvoid write_blocks_chombo_r8_ (char* file_name_in, #endif#ifdef DOUBLE_UNDERSCOREvoid write_blocks_chombo_r8__ (char* file_name_in, #endif#ifndef UNDERSCORE #ifndef DOUBLE_UNDERSCOREvoid write_blocks_chombo_r8 (char* file_name_in, #endif#endif			   int*  num_components,			   int*  num_levels,			   char* compNames,                           int*  ndim,                           int*  nxb,			   int*  nyb,			   int*  nzb,			   int   no_at_level[],  			   int*  tot_blocks,			   int*  tot_blocks_wr,			   int*  max_lnblocks,			   int*  lnblocks,			   int*  n_to_left,			   int   n_to_left_level[],			   int*  mdim,			   int*  mflags,			   int   lrefine[], 			   int   nodetype[], 			   int   which_child[], 			   int   bflags[],			   float coord[],			   float bnd_box[],			   float work_block[],			   float unk[],			   int*  nvar,			   int*  nvar_chk_cc,			   int   checkp_on_cc[],			   float facevarx[], float facevary[], float facevarz[],			   int*  nbndvar,			   int*  nvar_chk_fc,			   int   checkp_on_fc[],			   float unk_e_x[], float unk_e_y[], float unk_e_z[],			   int*  nbndvare,			   int*  nvar_chk_ec,			   int   checkp_on_ec[],			   float unk_n[],			   int*  nbndvarc,			   int*  nvar_chk_nc,			   int   checkp_on_nc[],			   int*  nx,  int* ny, int* nz,			   int*  il0, int* iu0,			   int*  jl0, int* ju0, 			   int*  kl0, int* ku0,			   int   iorder[]) {  hid_t  file_id, dset_block;  /* file and dataset ids */  hid_t  block_type_id;  CREATE_File8(file_name_in, &file_id);  WRITE_Header8(&file_id, 		num_components, 		num_levels,		compNames,		ndim,		nxb,		nyb,		nzb,		no_at_level);    WRITE_Blocks8(&file_id, 		num_levels,		num_components,		nxb,		nyb,		nzb,		max_lnblocks, 		n_to_left, 		n_to_left_level,		lnblocks, 		mdim, 		ndim, 		mflags, 		lrefine, 		nodetype, 		which_child, 		bflags, 		coord, 		bnd_box, 		work_block, 		unk,		nvar, 		nvar_chk_cc,		checkp_on_cc,		facevarx, facevary, facevarz,		nbndvar, 		nvar_chk_fc,		checkp_on_fc,		unk_e_x, unk_e_y, unk_e_z,		nbndvare, 		nvar_chk_ec,		checkp_on_ec,		unk_n,		nbndvarc, 		nvar_chk_nc,		checkp_on_nc,		nx, ny, nz,		il0, iu0, jl0, ju0, kl0, ku0,		iorder);  /* Close resources */  H5Fclose(file_id);}     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -