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 solid angle calculations **********************/
/**************************************************************************/
#ifndef VIS_BIT
#define VIS_BIT 1 /* bit to indicate visability of calculation detail */
#endif
#define FIRST 1 /* first atom is entire double overlap region */
#define SECOND 2 /* second atom is entire double overlap region */
#define BOTH 3 /* both atoms involved in double overlap */
#define S_NORMAL 0 /* normal overlap combo., I's from different atoms */
#define S_GCENT 1 /* special, several regions, I's from same atoms */
#define S_NEGS 2 /* ellipse on other side of G */
#define S_PERC 40 /* percentage gap between A and G (rel to SVangle) */
struct ellipsestruct
{
double a,b,c; /* ellipse parameters */
double delta; /* atom angle from G */
Atms *A; /* pointer to atom */
Vector I[2]; /* vectors to overlap intersepts */
double phi[2]; /* angles of intersepts from -A(x,y) */
char mode; /* mode (normal or multi_atom) */
};
typedef struct ellipsestruct Elps;
struct overlapstruct
{
Elps El[MAX_OVER]; /* ellipses encompassing overlap */
Vector G; /* vector to center of overlap */
int order; /* overlap order (eg. 3=triple overlap */
int nell; /* number of ellipses bounding overlap */
double solid; /* solid angle calculated */
struct overlapstruct *prev; /* pointer to previous overlap structure */
struct overlapstruct *next; /* pointer to next overlap structure */
};
typedef struct overlapstruct Over;
Over *New_Over(Over *old);
Over *Close_Over(Over *current);
void Initialize_Over(Over *over, Atms *A[MAX_OVER], int order);
void Find_2atom_Intersepts(double alpha, double beta
,Vector V[2], Vector I[2]);
void Setup_Two_Ellipses(Over *over, Atms *A[MAX_OVER], char mode);
double Double_Overlap_Solid(Over *over, double eps, unsigned mode);
double New_Craig_Counting(Mol *M, double eps, unsigned mode);
/**************************************************************************/
/****************** The End ... *****************************************/
/**************************************************************************/
|