FOX/ObjCryst++  1.10.X (development)
GeomStructFactor.h
1 /* ObjCryst++ Object-Oriented Crystallographic Library
2  (c) 2000-2002 Vincent Favre-Nicolin vincefn@users.sourceforge.net
3  2000-2001 University of Geneva (Switzerland)
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19 // This file declares all the functions used to compute the geometrical
20 //structure factors
21 
22 //Use pointers for the calculation of geometrical structure factors ?
23 //Else use the blitz library...
24 //This is *not* useful for performance reasons, but rather
25 //for memory /disk space reasons when using the GNU gcc compiler.
26 //(complex array expressions using blitz take a *huge* space
27 //on disk and in memory when compiling). Performance is still the best...
28 
29 #ifndef _VFN_RC_CRISTALLO_GEOM_STRUCT_FACTOR_H_
30 #define _VFN_RC_CRISTALLO_GEOM_STRUCT_FACTOR_H_
31 
32 #include "ObjCryst/CrystVector/CrystVector.h"
33 
34 #include <cmath>
35 
36 namespace ObjCryst
37 {
38 
39 // This is the default fonction, which does *not* use
40 //the geometrical structure factor, but calculates all the symmetric
41 //positions of the atom. This is done for SpaceGroups which
42 //do not yet have a coded Geom Structure factor, or for those
43 //where it does not make much difference
45 void RealGeomStructFactor (const REAL x,
46  const REAL y,
47  const REAL z,
48  const CrystVector_REAL&h,
49  const CrystVector_REAL&k,
50  const CrystVector_REAL&l,
51  CrystVector_REAL& rsf);
52 // Same for the imaginary part
54 void ImagGeomStructFactor (const REAL x,
55  const REAL y,
56  const REAL z,
57  const CrystVector_REAL&h,
58  const CrystVector_REAL&k,
59  const CrystVector_REAL&l,
60  CrystVector_REAL& rsf);
61 
62 
64 void RealGeomStructFactor_1 (const REAL x,
65  const REAL y,
66  const REAL z,
67  const CrystVector_REAL&h,
68  const CrystVector_REAL&k,
69  const CrystVector_REAL&l,
70  CrystVector_REAL& rsf);
71 
73 void RealGeomStructFactor_2 (const REAL x,
74  const REAL y,
75  const REAL z,
76  const CrystVector_REAL&h,
77  const CrystVector_REAL&k,
78  const CrystVector_REAL&l,
79  CrystVector_REAL& rsf);
80 
82 void RealGeomStructFactor_67 (const REAL x,
83  const REAL y,
84  const REAL z,
85  const CrystVector_REAL&h,
86  const CrystVector_REAL&k,
87  const CrystVector_REAL&l,
88  CrystVector_REAL& rsf);
89 
91 void RealGeomStructFactor_67ba_c(const REAL x,
92  const REAL y,
93  const REAL z,
94  const CrystVector_REAL&h,
95  const CrystVector_REAL&k,
96  const CrystVector_REAL&l,
97  CrystVector_REAL& rsf);
98 
100 void RealGeomStructFactor_67cab(const REAL x,
101  const REAL y,
102  const REAL z,
103  const CrystVector_REAL&h,
104  const CrystVector_REAL&k,
105  const CrystVector_REAL&l,
106  CrystVector_REAL& rsf);
107 
109 void RealGeomStructFactor_67_cba(const REAL x,
110  const REAL y,
111  const REAL z,
112  const CrystVector_REAL&h,
113  const CrystVector_REAL&k,
114  const CrystVector_REAL&l,
115  CrystVector_REAL& rsf);
116 
118 void RealGeomStructFactor_67bca(const REAL x,
119  const REAL y,
120  const REAL z,
121  const CrystVector_REAL&h,
122  const CrystVector_REAL&k,
123  const CrystVector_REAL&l,
124  CrystVector_REAL& rsf);
125 
127 void RealGeomStructFactor_67a_cb(const REAL x,
128  const REAL y,
129  const REAL z,
130  const CrystVector_REAL&h,
131  const CrystVector_REAL&k,
132  const CrystVector_REAL&l,
133  CrystVector_REAL& rsf);
134 
136 void RealGeomStructFactor_97 (const REAL x,
137  const REAL y,
138  const REAL z,
139  const CrystVector_REAL&h,
140  const CrystVector_REAL&k,
141  const CrystVector_REAL&l,
142  CrystVector_REAL& rsf);
143 
145 void RealGeomStructFactor_230 (const REAL x,
146  const REAL y,
147  const REAL z,
148  const CrystVector_REAL&h,
149  const CrystVector_REAL&k,
150  const CrystVector_REAL&l,
151  CrystVector_REAL& rsf);
152 
155 
157 void ImagGeomStructFactor_centro(const REAL x,
158  const REAL y,
159  const REAL z,
160  const CrystVector_REAL&h,
161  const CrystVector_REAL&k,
162  const CrystVector_REAL&l,
163  CrystVector_REAL& isf); //do nothing
164 
166 void ImagGeomStructFactor_1 (const REAL x,
167  const REAL y,
168  const REAL z,
169  const CrystVector_REAL&h,
170  const CrystVector_REAL&k,
171  const CrystVector_REAL&l,
172  CrystVector_REAL& isf);
173 
175 void ImagGeomStructFactor_2 (const REAL x,
176  const REAL y,
177  const REAL z,
178  const CrystVector_REAL&h,
179  const CrystVector_REAL&k,
180  const CrystVector_REAL&l,
181  CrystVector_REAL& isf);
182 
184 void ImagGeomStructFactor_67 (const REAL x,
185  const REAL y,
186  const REAL z,
187  const CrystVector_REAL&h,
188  const CrystVector_REAL&k,
189  const CrystVector_REAL&l,
190  CrystVector_REAL& isf);
191 
193 void ImagGeomStructFactor_67ba_c(const REAL x,
194  const REAL y,
195  const REAL z,
196  const CrystVector_REAL&h,
197  const CrystVector_REAL&k,
198  const CrystVector_REAL&l,
199  CrystVector_REAL& rsf);
200 
202 void ImagGeomStructFactor_67cab(const REAL x,
203  const REAL y,
204  const REAL z,
205  const CrystVector_REAL&h,
206  const CrystVector_REAL&k,
207  const CrystVector_REAL&l,
208  CrystVector_REAL& rsf);
209 
211 void ImagGeomStructFactor_67_cba(const REAL x,
212  const REAL y,
213  const REAL z,
214  const CrystVector_REAL&h,
215  const CrystVector_REAL&k,
216  const CrystVector_REAL&l,
217  CrystVector_REAL& rsf);
218 
220 void ImagGeomStructFactor_67bca(const REAL x,
221  const REAL y,
222  const REAL z,
223  const CrystVector_REAL&h,
224  const CrystVector_REAL&k,
225  const CrystVector_REAL&l,
226  CrystVector_REAL& rsf);
227 
229 void ImagGeomStructFactor_67a_cb(const REAL x,
230  const REAL y,
231  const REAL z,
232  const CrystVector_REAL&h,
233  const CrystVector_REAL&k,
234  const CrystVector_REAL&l,
235  CrystVector_REAL& rsf);
236 
238 void ImagGeomStructFactor_97 (const REAL x,
239  const REAL y,
240  const REAL z,
241  const CrystVector_REAL&h,
242  const CrystVector_REAL&k,
243  const CrystVector_REAL&l,
244  CrystVector_REAL& isf);
245 
247 void ImagGeomStructFactor_230 (const REAL x,
248  const REAL y,
249  const REAL z,
250  const CrystVector_REAL&h,
251  const CrystVector_REAL&k,
252  const CrystVector_REAL&l,
253  CrystVector_REAL& isf);
254 
255 }//namespace
256 
257 #endif
void ImagGeomStructFactor_1(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &isf)
void ImagGeomStructFactor(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &isf)
void RealGeomStructFactor_67ba_c(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void ImagGeomStructFactor_230(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &isf)
void RealGeomStructFactor_1(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void ImagGeomStructFactor_67ba_c(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void ImagGeomStructFactor_97(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &isf)
void RealGeomStructFactor_67cab(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void RealGeomStructFactor_67bca(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void RealGeomStructFactor_97(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void RealGeomStructFactor_67a_cb(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void RealGeomStructFactor_67(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void ImagGeomStructFactor_centro(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &isf)
void ImagGeomStructFactor_67bca(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void RealGeomStructFactor(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void ImagGeomStructFactor_2(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &isf)
void ImagGeomStructFactor_67_cba(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void RealGeomStructFactor_67_cba(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
The namespace which includes all objects (crystallographic and algorithmic) in ObjCryst++.
Definition: Atom.cpp:47
void ImagGeomStructFactor_67(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &isf)
void RealGeomStructFactor_2(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void RealGeomStructFactor_230(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void ImagGeomStructFactor_67cab(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)
void ImagGeomStructFactor_67a_cb(const REAL x, const REAL y, const REAL z, const CrystVector_REAL &h, const CrystVector_REAL &k, const CrystVector_REAL &l, CrystVector_REAL &rsf)