1 <H4> Update Time 02/03/13---05:40:19 </H4>
4 <H2>Information from source codes</H2>
9 $Date: 2002/02/14 10:18:46 $
12 $Log: crystalHelix.c,v $
14 ../src/crystalInfoFile.c:
32 typedef enum CrystalSpaceGroup {
33 CrystalSpaceGroupP1=0,
34 CrystalSpaceGroupHelical=1
37 #ifdef __CRYSTALINIT__
38 char* CrystalSpaceGroupString[] = {
44 extern char* CrystalSpaceGroupString[];
47 typedef float CrystalParaTypeReal;
48 typedef int CrystalParaTypeInteger;
50 typedef struct CrystalParaTypeRealCoord {
51 CrystalParaTypeReal x;
52 CrystalParaTypeReal y;
53 CrystalParaTypeReal z;
54 } CrystalParaTypeRealCoord;
56 typedef struct CrystalParaTypeIntegerCoord {
57 CrystalParaTypeInteger x;
58 CrystalParaTypeInteger y;
59 CrystalParaTypeInteger z;
60 } CrystalParaTypeIntegerCoord;
62 typedef struct CrystalParaTypeRealAxis {
63 CrystalParaTypeReal a;
64 CrystalParaTypeReal b;
65 CrystalParaTypeReal c;
66 } CrystalParaTypeRealAxis;
68 typedef struct CrystalParaTypeIntegerAxis {
69 CrystalParaTypeInteger a;
70 CrystalParaTypeInteger b;
71 CrystalParaTypeInteger c;
72 } CrystalParaTypeIntegerAxis;
74 typedef struct HelicalSymmetryInfo {
75 CrystalParaTypeInteger t; /* Turn */
76 CrystalParaTypeInteger u; /* Unit */
77 CrystalParaTypeInteger n; /* n-strands */
80 Don't change the below variables directly,
81 bacause the variables can be calculated by the upper's.
83 CrystalParaTypeReal dz; /* dz = TruePitch/unit */
84 CrystalParaTypeReal dphi; /* dphi = 2*PI*turn/unit */
85 } HelicalSymmetryInfo;
87 typedef struct CrystalInfo {
88 CrystalParaTypeRealCoord aAxis; /* Unit Cell Vector : a-axis : Length = 1 */
89 CrystalParaTypeRealCoord bAxis; /* Unit Cell Vector : b-axis : Length = 1 */
90 CrystalParaTypeRealCoord cAxis; /* Unit Cell Vector : c-axis : Length = 1 */
91 CrystalParaTypeRealAxis CellLength; /* Unit Cell Size a, b, c-axis [A] */
92 CrystalParaTypeRealCoord Origin; /* Unit Cell Origin [A] */
93 CrystalParaTypeIntegerAxis N; /* Number of Unit Cells a, b, c-axis */
94 CrystalParaTypeIntegerAxis StartN; /* Start of Unit Cells a, b, c-axis */
95 CrystalSpaceGroup SpaceGroup;
97 /* Information for Special Symmetry */
98 HelicalSymmetryInfo HelixInfo;
99 /* For HelicalSymmetry :
100 The filament axis (z-axis) is treated as the c-axis.
101 The azimuthal axis (phi-axis) is treated as the b-axis.
102 The radius axis (r-axis) is treated as the a-axis.
108 /* prototype begin */
109 extern void crystalInit(CrystalInfo* crystal);
111 extern void crystalSpaceGroupPrint(FILE* fpt, int mode);
113 extern void crystalInfoRead(FILE* fpt, CrystalInfo* linfo, int mode);
114 extern void crystalInfoWrite(FILE* fpt, CrystalInfo* linfo, int mode);
115 extern void crystalInfoFileFormat(FILE* fpt, int mode);
117 extern void crystalCellLengthSet(CrystalInfo* C, char axis, CrystalParaTypeReal length, int mode);
118 extern void crystalAxisSet(CrystalInfo* C, char axis, CrystalParaTypeReal x, CrystalParaTypeReal y, CrystalParaTypeReal z, int mode);
119 extern void crystalCellLengthSetUsingAxis(CrystalInfo* C, char axis, int mode);
120 extern void crystalAxisSetUsingCellLength(CrystalInfo* C, char axis, int mode);
124 #endif /* CRYSTAL_H */