1 /**********************************************************************************************************
2 Copyright (c) 2002-2013 Abdul-Rahman Allouche. All rights reserved
3 
4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
5 documentation files (the Gabedit), to deal in the Software without restriction, including without limitation
6 the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
7 and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8 
9   The above copyright notice and this permission notice shall be included in all copies or substantial portions
10   of the Software.
11 
12 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
13 TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
14 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
15 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
16 DEALINGS IN THE SOFTWARE.
17 ************************************************************************************************************/
18 
19 #ifndef __GABEDIT_GABEDITTYPE_H__
20 #define __GABEDIT_GABEDITTYPE_H__
21 
22 #define MAXISOTOP 10
23 typedef void (*GabeditSignalFunc)(GtkWidget*);
24 typedef enum
25 {
26   GABEDIT_NETWORK_FTP_RSH = 0,
27   GABEDIT_NETWORK_SSH
28 } GabEditNetWork;
29 
30 typedef struct _SAtomsProp
31 {
32 	gchar *name;
33 	gchar *symbol;
34 	guint atomicNumber;
35 	gdouble covalentRadii;
36 	gdouble bondOrderRadii;
37 	gdouble vanDerWaalsRadii;
38 	gdouble radii;
39 	guint maximumBondValence;
40 	gdouble masse;
41 	gdouble electronegativity;
42 	GdkColor color;
43 	gint nIsotopes;
44 	gint iMass[MAXISOTOP];
45 	gdouble rMass[MAXISOTOP];
46 	gdouble abundances[MAXISOTOP];
47 }SAtomsProp;
48 typedef enum
49 {
50   GABEDIT_TYPEWIN_GEOM,
51   GABEDIT_TYPEWIN_ORB,
52   GABEDIT_TYPEWIN_OTHER,
53 } GabEditTypeWin;
54 typedef enum
55 {
56   GABEDIT_TYPETEXTURE_1,
57   GABEDIT_TYPETEXTURE_2,
58   GABEDIT_TYPETEXTURE_3,
59   GABEDIT_TYPETEXTURE_NONE
60 } GabEditTypeTexture;
61 typedef enum
62 {
63   GABEDIT_TYPENODE_DEMON=0,
64   GABEDIT_TYPENODE_FIREFLY,
65   GABEDIT_TYPENODE_GAMESS,
66   GABEDIT_TYPENODE_GAUSSIAN,
67   GABEDIT_TYPENODE_MOLCAS,
68   GABEDIT_TYPENODE_MOLPRO,
69   GABEDIT_TYPENODE_MOPAC,
70   GABEDIT_TYPENODE_MPQC,
71   GABEDIT_TYPENODE_NWCHEM,
72   GABEDIT_TYPENODE_PSICODE,
73   GABEDIT_TYPENODE_ORCA,
74   GABEDIT_TYPENODE_QCHEM,
75   GABEDIT_TYPENODE_GABEDIT,
76   GABEDIT_TYPENODE_XYZ,
77   GABEDIT_TYPENODE_MOL2,
78   GABEDIT_TYPENODE_TINKER,
79   GABEDIT_TYPENODE_PDB,
80   GABEDIT_TYPENODE_GZMAT,
81   GABEDIT_TYPENODE_MZMAT,
82   GABEDIT_TYPENODE_HIN,
83   GABEDIT_TYPENODE_OTHER
84 } GabEditTypeNode;
85 typedef enum
86 {
87   GABEDIT_TYPEFILE_GAUSSIAN,
88   GABEDIT_TYPEFILE_GAUSSIAN_ANHARMONIC,
89   GABEDIT_TYPEFILE_GAUSSIAN_SCANOPT,
90   GABEDIT_TYPEFILE_GAUSSIAN_IRCOPT,
91   GABEDIT_TYPEFILE_MOLCAS,
92   GABEDIT_TYPEFILE_MOLPRO,
93   GABEDIT_TYPEFILE_DALTON,
94   GABEDIT_TYPEFILE_DEMON,
95   GABEDIT_TYPEFILE_GAMESS,
96   GABEDIT_TYPEFILE_GAMESS_ANHARMONIC,
97   GABEDIT_TYPEFILE_TURBOMOLE,
98   GABEDIT_TYPEFILE_MOLPRO_LOG,
99   GABEDIT_TYPEFILE_MOLDEN,
100   GABEDIT_TYPEFILE_GABEDIT,
101   GABEDIT_TYPEFILE_MOBCAL,
102   GABEDIT_TYPEFILE_XYZ,
103   GABEDIT_TYPEFILE_GAMESSIRC,
104   GABEDIT_TYPEFILE_MOL2,
105   GABEDIT_TYPEFILE_MOL,
106   GABEDIT_TYPEFILE_TINKER,
107   GABEDIT_TYPEFILE_PDB,
108   GABEDIT_TYPEFILE_GZMAT,
109   GABEDIT_TYPEFILE_MZMAT,
110   GABEDIT_TYPEFILE_HIN,
111   GABEDIT_TYPEFILE_AIMALL,
112   GABEDIT_TYPEFILE_CCHEMI,
113   GABEDIT_TYPEFILE_DEMONINPUT,
114   GABEDIT_TYPEFILE_GAMESSINPUT,
115   GABEDIT_TYPEFILE_GAUSSIANINPUT,
116   GABEDIT_TYPEFILE_GAUSSIAN_FCHK,
117   GABEDIT_TYPEFILE_MOLCASINPUT,
118   GABEDIT_TYPEFILE_MOLPROINPUT,
119   GABEDIT_TYPEFILE_MPQCINPUT,
120   GABEDIT_TYPEFILE_ORCAINPUT,
121   GABEDIT_TYPEFILE_FIREFLYINPUT,
122   GABEDIT_TYPEFILE_QCHEMINPUT,
123   GABEDIT_TYPEFILE_NWCHEMINPUT,
124   GABEDIT_TYPEFILE_PSICODEINPUT,
125   GABEDIT_TYPEFILE_MOPACINPUT,
126   GABEDIT_TYPEFILE_MPQC,
127   GABEDIT_TYPEFILE_JPEG,
128   GABEDIT_TYPEFILE_PPM,
129   GABEDIT_TYPEFILE_BMP,
130   GABEDIT_TYPEFILE_PNG,
131   GABEDIT_TYPEFILE_TIF,
132   GABEDIT_TYPEFILE_PS,
133   GABEDIT_TYPEFILE_ADF,
134   GABEDIT_TYPEFILE_ORCA,
135   GABEDIT_TYPEFILE_VASPOUTCAR,
136   GABEDIT_TYPEFILE_VASPPOSCAR,
137   GABEDIT_TYPEFILE_CIF,
138   GABEDIT_TYPEFILE_VASPXML,
139   GABEDIT_TYPEFILE_FIREFLY,
140   GABEDIT_TYPEFILE_QCHEM,
141   GABEDIT_TYPEFILE_NWCHEM,
142   GABEDIT_TYPEFILE_PSICODE,
143   GABEDIT_TYPEFILE_MOPAC,
144   GABEDIT_TYPEFILE_MOPAC_AUX,
145   GABEDIT_TYPEFILE_MOPAC_SCAN,
146   GABEDIT_TYPEFILE_MOPAC_IRC,
147   GABEDIT_TYPEFILE_CUBEGAUSS,
148   GABEDIT_TYPEFILE_CUBEMOLPRO,
149   GABEDIT_TYPEFILE_CUBEADF,
150   GABEDIT_TYPEFILE_MOLCASGRID,
151   GABEDIT_TYPEFILE_CUBEMOLCAS,
152   GABEDIT_TYPEFILE_CUBEQCHEM,
153   GABEDIT_TYPEFILE_CUBEGABEDIT,
154   GABEDIT_TYPEFILE_CUBEDX,
155   GABEDIT_TYPEFILE_TRJ,
156   GABEDIT_TYPEFILE_TXT,
157   GABEDIT_TYPEFILE_NBO_BASIS,
158   GABEDIT_TYPEFILE_NBO,
159   GABEDIT_TYPEFILE_XML,
160   GABEDIT_TYPEFILE_IGVPT2,
161   GABEDIT_TYPEFILE_WFX,
162   GABEDIT_TYPEFILE_UNKNOWN,
163 } GabEditTypeFile;
164 
165 typedef enum
166 {
167   GABEDIT_TYPEFILEGEOM_NEW,
168 
169   GABEDIT_TYPEFILEGEOM_GABEDIT,
170   GABEDIT_TYPEFILEGEOM_MOLDEN,
171 
172   GABEDIT_TYPEFILEGEOM_XYZ,
173   GABEDIT_TYPEFILEGEOM_MOL,
174   GABEDIT_TYPEFILEGEOM_MOL2,
175   GABEDIT_TYPEFILEGEOM_TINKER,
176   GABEDIT_TYPEFILEGEOM_PDB,
177   GABEDIT_TYPEFILEGEOM_HIN,
178   GABEDIT_TYPEFILEGEOM_AIMALL,
179 
180   GABEDIT_TYPEFILEGEOM_DALTONIN,
181   GABEDIT_TYPEFILEGEOM_DALTONFIRST,
182   GABEDIT_TYPEFILEGEOM_DALTONLAST,
183 
184   GABEDIT_TYPEFILEGEOM_DEMONIN,
185   GABEDIT_TYPEFILEGEOM_DEMONFIRST,
186   GABEDIT_TYPEFILEGEOM_DEMONLAST,
187 
188   GABEDIT_TYPEFILEGEOM_GAMESSIN,
189   GABEDIT_TYPEFILEGEOM_GAMESSFIRST,
190   GABEDIT_TYPEFILEGEOM_GAMESSLAST,
191 
192   GABEDIT_TYPEFILEGEOM_GAUSSIN,
193   GABEDIT_TYPEFILEGEOM_GAUSSOUTFIRST,
194   GABEDIT_TYPEFILEGEOM_GAUSSOUTLAST,
195   GABEDIT_TYPEFILEGEOM_GAUSSIAN_FCHK,
196 
197   GABEDIT_TYPEFILEGEOM_MOLCASIN,
198   GABEDIT_TYPEFILEGEOM_MOLCASOUTFIRST,
199   GABEDIT_TYPEFILEGEOM_MOLCASOUTLAST,
200 
201   GABEDIT_TYPEFILEGEOM_MOLPROIN,
202   GABEDIT_TYPEFILEGEOM_MOLPROOUTFIRST,
203   GABEDIT_TYPEFILEGEOM_MOLPROOUTLAST,
204 
205   GABEDIT_TYPEFILEGEOM_MPQCIN,
206   GABEDIT_TYPEFILEGEOM_MPQCOUTFIRST,
207   GABEDIT_TYPEFILEGEOM_MPQCOUTLAST,
208 
209   GABEDIT_TYPEFILEGEOM_ORCAIN,
210   GABEDIT_TYPEFILEGEOM_ORCAOUTFIRST,
211   GABEDIT_TYPEFILEGEOM_ORCAOUTLAST,
212 
213   GABEDIT_TYPEFILEGEOM_VASPIN,
214   GABEDIT_TYPEFILEGEOM_VASPPOSCAR,
215   GABEDIT_TYPEFILEGEOM_VASPOUTFIRST,
216   GABEDIT_TYPEFILEGEOM_VASPOUTLAST,
217   GABEDIT_TYPEFILEGEOM_VASPXMLFIRST,
218   GABEDIT_TYPEFILEGEOM_VASPXMLLAST,
219 
220   GABEDIT_TYPEFILEGEOM_CIF,
221 
222   GABEDIT_TYPEFILEGEOM_QCHEMIN,
223   GABEDIT_TYPEFILEGEOM_QCHEMOUTFIRST,
224   GABEDIT_TYPEFILEGEOM_QCHEMOUTLAST,
225 
226   GABEDIT_TYPEFILEGEOM_NWCHEMIN,
227   GABEDIT_TYPEFILEGEOM_NWCHEMOUTFIRST,
228   GABEDIT_TYPEFILEGEOM_NWCHEMOUTLAST,
229 
230   GABEDIT_TYPEFILEGEOM_PSICODEIN,
231   GABEDIT_TYPEFILEGEOM_PSICODEOUTFIRST,
232   GABEDIT_TYPEFILEGEOM_PSICODEOUTLAST,
233 
234 
235   GABEDIT_TYPEFILEGEOM_MOPACIN,
236   GABEDIT_TYPEFILEGEOM_MOPACOUTFIRST,
237   GABEDIT_TYPEFILEGEOM_MOPACOUTLAST,
238   GABEDIT_TYPEFILEGEOM_MOPACAUX,
239   GABEDIT_TYPEFILEGEOM_MOPACOUTSCAN,
240 
241   GABEDIT_TYPEFILEGEOM_FIREFLYIN,
242   GABEDIT_TYPEFILEGEOM_FIREFLYFIRST,
243   GABEDIT_TYPEFILEGEOM_FIREFLYLAST,
244 
245   GABEDIT_TYPEFILEGEOM_GAMESSIRC,
246 
247   GABEDIT_TYPEFILEGEOM_TURBOMOLEFIRST,
248   GABEDIT_TYPEFILEGEOM_TURBOMOLELAST,
249 
250 
251   GABEDIT_TYPEFILEGEOM_GAUSSIAN_ZMATRIX,
252   GABEDIT_TYPEFILEGEOM_MOPAC_ZMATRIX,
253 
254   GABEDIT_TYPEFILEGEOM_WFX,
255 
256   GABEDIT_TYPEFILEGEOM_UNKNOWN
257 } GabEditTypeFileGeom;
258 
259 typedef enum
260 {
261   GABEDIT_TYPEGRID_ORBITAL,
262   GABEDIT_TYPEGRID_EDENSITY,
263   GABEDIT_TYPEGRID_DDENSITY,
264   GABEDIT_TYPEGRID_ADENSITY,
265   GABEDIT_TYPEGRID_SDENSITY,
266   GABEDIT_TYPEGRID_ELFBECKE,
267   GABEDIT_TYPEGRID_ELFSAVIN,
268   GABEDIT_TYPEGRID_FEDELECTROPHILIC,
269   GABEDIT_TYPEGRID_FEDNUCLEOPHILIC,
270   GABEDIT_TYPEGRID_FEDRADICAL,
271   GABEDIT_TYPEGRID_NCI,
272   GABEDIT_TYPEGRID_SAS,
273   GABEDIT_TYPEGRID_SASMAP,
274   GABEDIT_TYPEGRID_MEP_CHARGES,
275   GABEDIT_TYPEGRID_MEP_MULTIPOL,
276   GABEDIT_TYPEGRID_MEP_CG,
277   GABEDIT_TYPEGRID_MEP_MG,
278   GABEDIT_TYPEGRID_MEP_EXACT,
279 } GabEditTypeGrid;
280 
281 typedef enum
282 {
283   GABEDIT_TYPEGEOM_NO,
284   GABEDIT_TYPEGEOM_BALLSTICK,
285   GABEDIT_TYPEGEOM_STICK,
286   GABEDIT_TYPEGEOM_SPACE,
287   GABEDIT_TYPEGEOM_WIREFRAME
288 } GabEditTypeGeom;
289 
290 typedef enum
291 {
292   GABEDIT_SURFSHOW_NO,
293   GABEDIT_SURFSHOW_POSNEG,
294   GABEDIT_SURFSHOW_POSITIVE,
295   GABEDIT_SURFSHOW_NEGATIVE
296 } GabEditTypeSurfShow;
297 
298 typedef enum
299 {
300   GABEDIT_BLEND_NO,
301   GABEDIT_BLEND_YES
302 } GabEditTypeBlend;
303 
304 typedef enum
305 {
306   GABEDIT_POS_WIREFRAME_NO,
307   GABEDIT_POS_WIREFRAME_YES,
308   GABEDIT_NEG_WIREFRAME_NO,
309   GABEDIT_NEG_WIREFRAME_YES
310 } GabEditTypeWireFrame;
311 
312 typedef enum
313 {
314   GABEDIT_PROGORB_UNK,
315   GABEDIT_PROGORB_READGEOM,
316   GABEDIT_PROGORB_SAVEGEOM,
317   GABEDIT_PROGORB_COMPISOSURFACE,
318   GABEDIT_PROGORB_COMPGRID,
319   GABEDIT_PROGORB_COMPINTEG,
320   GABEDIT_PROGORB_SCALEGRID,
321   GABEDIT_PROGORB_SUBSGRID,
322   GABEDIT_PROGORB_READGRID,
323   GABEDIT_PROGORB_SAVEGRID,
324   GABEDIT_PROGORB_MAPGRID,
325   GABEDIT_PROGORB_SCANFILEGRID,
326   GABEDIT_PROGORB_COMPMULTIPOL,
327   GABEDIT_PROGORB_COMPLAPGRID,
328   GABEDIT_PROGORB_COMPGRADGRID,
329   GABEDIT_PROGORB_COMPNCIGRID,
330   GABEDIT_PROGORB_COMPL2GRID,
331   GABEDIT_PROGORB_COMPMEPGRID,
332 } GabEditTypeProgressOrb;
333 
334 typedef struct _LXYZ LXYZ;
335 struct _LXYZ
336 {
337 	gdouble Coef;
338 	gint l[3];
339 };
340 
341 typedef struct _Zlm Zlm;
342 struct _Zlm
343 {
344 	gint l;
345 	gint m;
346 	gint numberOfCoefficients;
347 	LXYZ* lxyz;
348 };
349 
350 typedef struct _GTF
351 {
352  gdouble Ex;
353  gdouble Coef;
354  gint l[3];
355  gdouble C[3];
356 }GTF;
357 
358 typedef struct _AO
359 {
360  gint L;
361  gint N;
362  gdouble* Ex;
363  gdouble* Coef;
364  }AO;
365 
366 typedef struct _TYPE
367 {
368  char* Symb;
369  gint N; /* Number of electrons*/
370  gint Norb;
371  AO *Ao;
372  }TYPE;
373 
374 typedef struct _CGTF
375 {
376  gint numberOfFunctions;
377  gint NumCenter;
378  GTF* Gtf;
379  gint L; /* used if spherical basis*/
380  gint M; /* used if spherical basis*/
381  }CGTF;
382 typedef struct _RGBColor
383 {
384   guchar rgb[3];
385 
386 }RGBColor;
387 
388 typedef struct _TypeGeomOrb
389 {
390 	gchar* Symb;
391 	gdouble C[3];
392 	gdouble partialCharge;
393 	gdouble nuclearCharge;
394 	gboolean variable;
395 	SAtomsProp Prop;
396 	guint Sphere;
397 	gint N;
398 	gint NumType;
399 	gint NAOrb;
400 	gint* NumOrb;
401 	gint NOrb;
402 	gint NAlphaOrb;
403 	gint NBetaOrb;
404 	gdouble **CoefAlphaOrbitals;
405 	gdouble *OccAlphaOrbitals;
406 	gdouble *EnerAlphaOrbitals;
407 	gchar	**SymAlphaOrbitals;
408 	gdouble **CoefBetaOrbitals;
409 	gdouble *EnerBetaOrbitals;
410 	gdouble *OccBetaOrbitals;
411 	gchar	**SymBetaOrbitals;
412 }TypeGeomOrb;
413 
414 typedef struct _TypeFontsStyle
415 {
416  gchar *fontname;
417  GdkColor BaseColor;
418  GdkColor TextColor;
419 }TypeFontsStyle;
420 typedef gdouble	 (*Func3d)(gdouble ,gdouble,gdouble,gint);
421 
422 typedef struct _STF
423 {
424  gdouble Ex;
425  gdouble Coef;
426  gint l[3];
427  gdouble C[3];
428  gint pqn;
429 }STF;
430 
431 typedef struct _CSTF
432 {
433  gint N;
434  gint NumCenter;
435  STF* Stf;
436  gint L; /* used if spherical basis*/
437  gint M; /* used if spherical basis*/
438  }CSTF;
439 
440 typedef struct _OpenGLOptions
441 {
442 	gint rgba;
443 	gint doubleBuffer;
444 	gint alphaSize;
445 	gint depthSize;
446 	gint numberOfSubdivisionsCylindre;
447 	gint numberOfSubdivisionsSphere;
448 	gint activateText;
449 }OpenGLOptions;
450 typedef enum
451 {
452   GABEDIT_BONDTYPE_SINGLE = 0,
453   GABEDIT_BONDTYPE_DOUBLE,
454   GABEDIT_BONDTYPE_TRIPLE,
455   GABEDIT_BONDTYPE_HYDROGEN,
456 } GabEditBondType;
457 typedef struct _BondType BondType;
458 struct _BondType
459 {
460 	gint n1;
461 	gint n2;
462 	GabEditBondType bondType;
463 };
464 typedef struct _DipoleDef
465 {
466  gboolean def;
467  gdouble origin[3];
468  gdouble value[3];
469  gdouble radius;
470  gdouble color[3];
471 }DipoleDef;
472 
473 
474 #endif /* __GABEDIT_GABEDITTYPE_H__ */
475 
476