steric_1.11
|
Makefile,
Makefile.sgi,
README.steric,
contplot,
craig.c,
craig.h,
crystal.c,
crystal.h,
integrat.c,
integrat.h,
leach.c,
leach.h,
long_steric,
makeit,
mapcont,
mapcont.c,
mapprof,
mapprof.c,
profplot,
proja.c,
proja.h,
ryan.c,
ryan.h,
ryan_perm.c,
ryan_perm.h,
ryan_quad.c,
ryan_quad.h,
steraid.c,
steraid.h,
stercalc.c,
stercalc.h,
stercomm.c,
stercomm.h,
sterdefn.h,
stererr.h,
sterfile.c,
sterfile.h,
stergrap.c,
stergrap.h,
stergrp.c,
stergrp.h,
steric,
steric.TeX,
steric.err,
steric.grp,
steric.hlp,
steric.ini,
steric.par,
stermain.c,
stermem.c,
stermem.h,
sterover.c,
sterover.h,
sterplot,
stertext.c,
stertext.h,
test.bgf,
test.inp,
vectors.c,
vectors.h,
|
|
|
/**************************************************************************/
/****************** Craig projection area calculations ******************/
/**************************************************************************/
#define A_IGNORE 0 /* circle provides nothing to area combination */
#define A_NORMAL 1 /* normal overlap combo., I's from different atoms */
#define A_GCENT 2 /* G at atoms centre */
#define A_NEGS 4 /* ellipse on other side of G (theta > pi) */
#define A_INGO 8 /* ignore first intersept vector */
#define A_INGT 16 /* ignore second intersept vector */
#define A_TEMP 32 /* temporary circle for multi atom purposes */
#define A_MULTI 64 /* multi atom type (ignore in many cases) */
#define A_PERC 5 /* percentage gap between A and G (rel to tradius) */
typedef struct circlestruct
{
double radius; /* circle radius */
double delta; /* atom distance from G */
Atms *A; /* pointer to atom */
Vector I[2]; /* vectors to overlap intersepts */
double theta, phi, gamma; /* angles of intersepts from -A(x,y) */
char mode; /* mode (normal or multi_atom) */
#ifdef DEBUG
int num; /* circles number in list */
#endif
struct circlestruct *prev; /* pointer to previous circle structure */
struct circlestruct *next; /* pointer to next circle structure */
} Circ;
typedef struct interstruct
{
Vector I; /* intersept vector on plane */
Atms *A[2]; /* two atoms intersecting */
double phi; /* phi angle about G */
#ifdef DEBUG
int num; /* intersepts number in list */
#endif
struct interstruct *prev; /* pointer to previous intersept */
struct interstruct *next; /* pointer to previous intersept */
} Mint;
typedef struct poverlapstruct
{
Circ *Cr; /* circles encompassing overlap */
Mint *Mi; /* list of intersections */
Vector G; /* vector to center of overlap */
int order; /* overlap order (eg. 3=triple overlap */
int ncir; /* number of circles bounding overlap */
double area; /* area calculated */
#ifdef DEBUG
int num; /* overlaps number in list */
#endif
struct poverlapstruct *prev; /* pointer to previous overlap structure */
struct poverlapstruct *next; /* pointer to next overlap structure */
} Pover;
Pover *New_Pover(Pover *old);
Pover *Close_Pover(Pover *current);
int Initialize_Pover(Pover *pover, int order);
int Find_2atom_Intersepts_P(double rA, double rB, Vector V[2], Vector I[2]);
void Setup_Two_Circles(Pover *pover, Atms *A[MAX_OVER], char mode);
double Double_Poverlap_Area(Pover *pover, unsigned mode);
double New_Craig_Counting_P(Mol *M, unsigned mode);
/**************************************************************************/
/****************** The End ... *****************************************/
/**************************************************************************/
|