void write_pdb_from_mol(char *filename,Molecule * mol){ FILE *fpout; int i ; #ifdef MPI if(!is_mpi_master()){ return ; } #endif get_legal_atom_names(); if ((fpout = fopen(filename, "w")) == NULL){ perror("Cannot open file\n"); abort(); } for (i = 0; i < mol->natoms; i++) { fprintf(fpout,"ATOM %5d %.2s A 1 %8.3f%8.3f%8.3f\n", i%99999, &legal_atom_names[mol->atomic_number[i]-1], mol->pos[i*3+0]*1e10, mol->pos[i*3+1]*1e10, mol->pos[i*3+2]*1e10); } fprintf(fpout, "END\n") ; fclose(fpout); }
void write_3D_array_to_vtk(float * F,int nx, int ny, int nz, char * filename){ FILE * f; int i; #ifdef MPI if(!is_mpi_master()){ return; } #endif f = fopen(filename,"w"); if(!f){ perror("Bad file in write_vtk!"); abort(); } fprintf(f,"# vtk DataFile Version 2.0\n"); fprintf(f,"Generated by image_util write_vtk()\n"); fprintf(f,"ASCII\n"); fprintf(f,"DATASET STRUCTURED_POINTS\n"); fprintf(f,"DIMENSIONS %d %d %d\n",nx,ny,nz); fprintf(f,"ORIGIN 0 0 0\n"); fprintf(f,"SPACING 1 1 1\n"); fprintf(f,"POINT_DATA %d\n",nx*ny*nz); fprintf(f,"SCALARS intensity float 1\n"); fprintf(f,"LOOKUP_TABLE default\n"); fprintf(f,"%6e",F[0]); for(i = 1;i<nx*ny*nz;i++){ fprintf(f," %e",F[i]); } fprintf(f,"\n"); fflush(f); fclose(f); }
void write_3D_array_as_structured_grid_to_vtk(float * F,CCD * det, float * HKL_list, int HKL_list_size, int n_patterns, char * filename){ FILE * f; int i; int size = HKL_list_size/n_patterns; char buffer[1024]; #ifdef MPI if(!is_mpi_master()){ return; } #endif strcpy(buffer,filename); f = fopen(buffer,"w"); if(!f){ perror("Bad file in write_vtk!"); abort(); } fprintf(f,"# vtk DataFile Version 2.0\n"); fprintf(f,"Generated by image_util write_vtk()\n"); fprintf(f,"ASCII\n"); fprintf(f,"DATASET STRUCTURED_GRID\n"); fprintf(f,"DIMENSIONS %d %d %d\n",det->nx,det->ny,det->nz); /* fprintf(f,"ORIGIN 0 0 0\n"); fprintf(f,"SPACING 1 1 1\n");*/ fprintf(f,"POINTS %d float\n\n",size); for(i = 0;i<size;i++){ fprintf(f,"%6e\t%6e\t%6e\n",HKL_list[(i)*3],HKL_list[(i)*3+1],HKL_list[(i)*3+2]); } fprintf(f,"\nPOINT_DATA %d\n",size); fprintf(f,"SCALARS intensity float\n"); fprintf(f,"LOOKUP_TABLE default\n"); fprintf(f,"%6e",F[0]); for(i = 1;i<size;i++){ fprintf(f," %e",F[i]); } fprintf(f,"\n"); fflush(f); fclose(f); }