Revision | 04e6b7126c29921d53fd4cde2b4523fa61019220 (tree) |
---|---|
Time | 2011-01-12 10:17:31 |
Author | Mikiya Fujii <mikiya.fujii@gmai...> |
Commiter | Mikiya Fujii |
ZINDO/S-SCF is implemented.
git-svn-id: https://svn.sourceforge.jp/svnroot/molds/MolDS/trunk@52 1136aad2-a195-0410-b898-f5ea1d11b9d8
@@ -20,7 +20,7 @@ Hatom::Hatom(double x, double y, double z) : Atom(x, y, z){ | ||
20 | 20 | this->atomicMass = 1.00794*Parameters::GetInstance()->GetGMolin2AU(); |
21 | 21 | this->valence.push_back(s); |
22 | 22 | this->bondingParameter = -9.0*Parameters::GetInstance()->GetEV2AU(); |
23 | - this->bondingParameterSZindo = -9.0*Parameters::GetInstance()->GetEV2AU(); | |
23 | + this->bondingParameterSZindo = -12.0*Parameters::GetInstance()->GetEV2AU(); | |
24 | 24 | this->bondingParameterDZindo = 0.0; |
25 | 25 | this->coreCharge = 1.0; |
26 | 26 | this->imuAmuS = 7.176*Parameters::GetInstance()->GetEV2AU(); |
@@ -1,49 +1,60 @@ | ||
1 | -SCF | |
2 | - max_iter 200 | |
3 | - rms_density 0.00000001 | |
4 | -SCF_END | |
5 | - | |
6 | 1 | THEORY |
7 | 2 | //cndo/2 |
8 | 3 | //indo |
9 | - //zindo/s | |
4 | + zindo/s | |
10 | 5 | //none |
11 | 6 | //principal_axes |
12 | 7 | //translate |
13 | - rotate | |
8 | + //rotate | |
14 | 9 | THEORY_END |
15 | 10 | |
16 | -INERTIA | |
17 | - origin 1.0 2.0 30.0 | |
18 | -INERTIA_END | |
11 | +SCF | |
12 | + max_iter 200 | |
13 | + rms_density 0.00000001 | |
14 | +SCF_END | |
15 | + | |
16 | +//INERTIA | |
17 | +// origin 1.0 2.0 30.0 | |
18 | +//INERTIA_END | |
19 | 19 | |
20 | -ROTATE | |
21 | - type axis | |
20 | +//ROTATE | |
21 | + //type axis | |
22 | 22 | //type eular_angle |
23 | 23 | //origin 1.0 2.0 3.0 |
24 | - origin 0.0 0.0 0.0 | |
25 | - axis 10.0 0.0 0.0 | |
26 | - angle 30 | |
24 | + //origin 0.0 0.0 0.0 | |
25 | + //axis 10.0 0.0 0.0 | |
26 | + //angle 30 | |
27 | 27 | //angles 15 25 35 |
28 | -ROTATE_END | |
28 | +//ROTATE_END | |
29 | 29 | |
30 | 30 | TRANSLATE |
31 | 31 | //difference 100.0 200.0 300.0 |
32 | 32 | TRANSLATE_END |
33 | 33 | |
34 | -// s | |
34 | +// S2 | |
35 | 35 | GEOMETRY |
36 | - S 0.0 0.0 1.0 | |
36 | + S 0.424528 0.741240 0.000000 | |
37 | + S -1.353072 0.741240 0.000000 | |
37 | 38 | GEOMETRY_END |
38 | 39 | |
40 | +// s | |
41 | +//GEOMETRY | |
42 | +// S 0.0 0.0 1.0 | |
43 | +//GEOMETRY_END | |
44 | + | |
45 | +// H2 | |
46 | +//GEOMETRY | |
47 | +// H 0.242857 0.417790 0.000000 | |
48 | +// H -0.357143 0.417790 0.000000 | |
49 | +//GEOMETRY_END | |
39 | 50 | |
40 | 51 | //metane |
41 | 52 | //GEOMETRY |
42 | -// C -0.37687006 0.95490165 0.00000000 | |
43 | -// H -0.02021563 -0.05390835 0.00000000 | |
44 | -// H -0.02019722 1.45929984 0.87365150 | |
45 | -// H -0.02019722 1.45929984 -0.87365150 | |
46 | -// H -1.44687006 0.95491483 0.00000000 | |
53 | +// C 0.647389 0.820131 0.000000 | |
54 | +// H 1.004043 -0.188679 0.000000 | |
55 | +// H 1.004062 1.324529 0.873652 | |
56 | +// H 1.004062 1.324529 -0.873652 | |
57 | +// H -0.422611 0.820144 0.000000 | |
47 | 58 | //GEOMETRY_END |
48 | 59 | |
49 | 60 |
@@ -134,11 +145,7 @@ GEOMETRY_END | ||
134 | 145 | // Li 1.994960 0.485175 0.000000 |
135 | 146 | //GEOMETRY_END |
136 | 147 | |
137 | -// H2 | |
138 | -//GEOMETRY | |
139 | -// H 0.242857 0.417790 0.000000 | |
140 | -// H -0.357143 0.417790 0.000000 | |
141 | -//GEOMETRY_END | |
148 | + | |
142 | 149 | |
143 | 150 | // Li2 |
144 | 151 | //GEOMETRY |
@@ -185,6 +185,8 @@ double ZindoS::GetCoulombInt(OrbitalType orbital1, OrbitalType orbital2, Atom* a | ||
185 | 185 | value = atom->GetZindoF0ssLower() |
186 | 186 | -atom->GetZindoF2ppLower()*2.0; |
187 | 187 | } |
188 | + // ToDo: There are bugs for d-orbitals. | |
189 | + /* | |
188 | 190 | else if( orbital1 == s && ( orbital2 == dxy || |
189 | 191 | orbital2 == dyz || |
190 | 192 | orbital2 == dzz || |
@@ -287,6 +289,7 @@ double ZindoS::GetCoulombInt(OrbitalType orbital1, OrbitalType orbital2, Atom* a | ||
287 | 289 | -atom->GetZindoF2ddLower()*2.0 |
288 | 290 | -atom->GetZindoF4ddLower()*4.0; |
289 | 291 | } |
292 | + */ | |
290 | 293 | else{ |
291 | 294 | stringstream ss; |
292 | 295 | ss << this->errorMessageCoulombInt; |
@@ -315,6 +318,13 @@ double ZindoS::GetExchangeInt(OrbitalType orbital1, OrbitalType orbital2, Atom* | ||
315 | 318 | else if( orbital2 == s && (orbital1 == px || orbital1 == py || orbital1 == pz ) ){ |
316 | 319 | value = atom->GetZindoG1spLower(); |
317 | 320 | } |
321 | + else if( (orbital1 != orbital2) | |
322 | + && ( orbital1 == px || orbital1 == py || orbital1 == pz ) | |
323 | + && ( orbital2 == px || orbital2 == py || orbital2 == pz ) ){ | |
324 | + value = atom->GetZindoF2ppLower()*3.0; | |
325 | + } | |
326 | + // ToDo: There are bugs for d-orbitals. | |
327 | + /* | |
318 | 328 | else if( (orbital1 == s) && (orbital2 == dxy || |
319 | 329 | orbital2 == dyz || |
320 | 330 | orbital2 == dzz || |
@@ -329,11 +339,6 @@ double ZindoS::GetExchangeInt(OrbitalType orbital1, OrbitalType orbital2, Atom* | ||
329 | 339 | orbital1 == dxxyy ) ){ |
330 | 340 | value = atom->GetZindoG2sdLower(); |
331 | 341 | } |
332 | - else if( (orbital1 != orbital2) | |
333 | - && ( orbital1 == px || orbital1 == py || orbital1 == pz ) | |
334 | - && ( orbital2 == px || orbital2 == py || orbital2 == pz ) ){ | |
335 | - value = atom->GetZindoF2ppLower()*3.0; | |
336 | - } | |
337 | 342 | else if( (orbital1 == px && orbital2 == dzz) || |
338 | 343 | (orbital2 == px && orbital1 == dzz) || |
339 | 344 | (orbital1 == py && orbital2 == dzz) || |
@@ -406,6 +411,7 @@ double ZindoS::GetExchangeInt(OrbitalType orbital1, OrbitalType orbital2, Atom* | ||
406 | 411 | value = atom->GetZindoF2ddLower()*3.0 |
407 | 412 | +atom->GetZindoF4ddLower()*20.0; |
408 | 413 | } |
414 | + */ | |
409 | 415 | else{ |
410 | 416 | stringstream ss; |
411 | 417 | ss << this->errorMessageExchangeInt; |
@@ -414,7 +420,6 @@ double ZindoS::GetExchangeInt(OrbitalType orbital1, OrbitalType orbital2, Atom* | ||
414 | 420 | ss << this->errorMessageOrbitalType << OrbitalTypeStr(orbital2) << "\n"; |
415 | 421 | throw MolDSException(ss.str()); |
416 | 422 | } |
417 | - | |
418 | 423 | |
419 | 424 | return value; |
420 | 425 | } |