diff options
Diffstat (limited to 'src/diffraction.c')
-rw-r--r-- | src/diffraction.c | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/src/diffraction.c b/src/diffraction.c index de43690d..32601046 100644 --- a/src/diffraction.c +++ b/src/diffraction.c @@ -101,114 +101,6 @@ static double complex molecule_factor(struct molecule *mol, struct threevec q, } -/* Load PDB file into a memory format suitable for efficient(ish) structure - * factor calculation */ -static struct molecule *load_molecule() -{ - struct molecule *mol; - FILE *fh; - char line[1024]; - char *rval; - int i; - - mol = malloc(sizeof(struct molecule)); - if ( mol == NULL ) return NULL; - mol->n_species = 0; - - fh = fopen("molecule.pdb", "r"); - if ( fh == NULL ) { - fprintf(stderr, "Couldn't open file\n"); - return NULL; - } - - do { - - char el[4]; - int j, r; - int done = 0; - float x, y, z, occ, B; - char *coords; - - rval = fgets(line, 1023, fh); - - /* Only interested in atoms */ - if ( strncmp(line, "HETATM", 6) != 0 ) continue; - - /* The following crimes against programming style - * were brought to you by Wizbit Enterprises, Inc. */ - if ( line[76] == ' ' ) { - el[0] = line[77]; - el[1] = '\0'; - } else { - el[0] = line[76]; - el[1] = line[77]; - el[2] = '\0'; - } - - coords = line + 29; - r = sscanf(coords, "%f %f %f %f %f", &x, &y, &z, &occ, &B); - if ( r != 5 ) { - fprintf(stderr, "WTF?\n"); - abort(); - } - - for ( j=0; j<mol->n_species; j++ ) { - - struct mol_species *spec; - int n; - - spec = mol->species[j]; - - if ( strcmp(spec->species, el) != 0 ) continue; - - n = mol->species[j]->n_atoms; - - spec->x[n] = x; - spec->y[n] = y; - spec->z[n] = z; - spec->occ[n] = occ; - spec->B[n] = B; - mol->species[j]->n_atoms++; - - done = 1; - - } - - if ( !done ) { - - /* Need to create record for this species */ - struct mol_species *spec; - - spec = malloc(sizeof(struct mol_species)); - - memcpy(spec->species, el, 4); - spec->x[0] = x; - spec->y[0] = y; - spec->z[0] = z; - spec->occ[0] = occ; - spec->B[0] = B; - spec->n_atoms = 1; - - mol->species[mol->n_species] = spec; - mol->n_species++; - - } - - - } while ( rval != NULL ); - - fclose(fh); - - printf("There are %i species\n", mol->n_species); - for ( i=0; i<mol->n_species; i++ ) { - printf("'%s': %i\n", mol->species[i]->species, - mol->species[i]->n_atoms); - } - - return mol; -} - - void get_diffraction(struct image *image, UnitCell *cell) { int x, y; |