Example #1
0
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);
}
Example #2
0
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);
}
Example #3
0
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);
}