• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision04e6b7126c29921d53fd4cde2b4523fa61019220 (tree)
Time2011-01-12 10:17:31
AuthorMikiya Fujii <mikiya.fujii@gmai...>
CommiterMikiya Fujii

Log Message

ZINDO/S-SCF is implemented.

git-svn-id: https://svn.sourceforge.jp/svnroot/molds/MolDS/trunk@52 1136aad2-a195-0410-b898-f5ea1d11b9d8

Change Summary

Incremental Difference

--- a/src/base/atoms/Hatom.h
+++ b/src/base/atoms/Hatom.h
@@ -20,7 +20,7 @@ Hatom::Hatom(double x, double y, double z) : Atom(x, y, z){
2020 this->atomicMass = 1.00794*Parameters::GetInstance()->GetGMolin2AU();
2121 this->valence.push_back(s);
2222 this->bondingParameter = -9.0*Parameters::GetInstance()->GetEV2AU();
23- this->bondingParameterSZindo = -9.0*Parameters::GetInstance()->GetEV2AU();
23+ this->bondingParameterSZindo = -12.0*Parameters::GetInstance()->GetEV2AU();
2424 this->bondingParameterDZindo = 0.0;
2525 this->coreCharge = 1.0;
2626 this->imuAmuS = 7.176*Parameters::GetInstance()->GetEV2AU();
--- a/src/input.in
+++ b/src/input.in
@@ -1,49 +1,60 @@
1-SCF
2- max_iter 200
3- rms_density 0.00000001
4-SCF_END
5-
61 THEORY
72 //cndo/2
83 //indo
9- //zindo/s
4+ zindo/s
105 //none
116 //principal_axes
127 //translate
13- rotate
8+ //rotate
149 THEORY_END
1510
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
1919
20-ROTATE
21- type axis
20+//ROTATE
21+ //type axis
2222 //type eular_angle
2323 //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
2727 //angles 15 25 35
28-ROTATE_END
28+//ROTATE_END
2929
3030 TRANSLATE
3131 //difference 100.0 200.0 300.0
3232 TRANSLATE_END
3333
34-// s
34+// S2
3535 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
3738 GEOMETRY_END
3839
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
3950
4051 //metane
4152 //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
4758 //GEOMETRY_END
4859
4960
@@ -134,11 +145,7 @@ GEOMETRY_END
134145 // Li 1.994960 0.485175 0.000000
135146 //GEOMETRY_END
136147
137-// H2
138-//GEOMETRY
139-// H 0.242857 0.417790 0.000000
140-// H -0.357143 0.417790 0.000000
141-//GEOMETRY_END
148+
142149
143150 // Li2
144151 //GEOMETRY
--- a/src/zindo/ZindoS.h
+++ b/src/zindo/ZindoS.h
@@ -185,6 +185,8 @@ double ZindoS::GetCoulombInt(OrbitalType orbital1, OrbitalType orbital2, Atom* a
185185 value = atom->GetZindoF0ssLower()
186186 -atom->GetZindoF2ppLower()*2.0;
187187 }
188+ // ToDo: There are bugs for d-orbitals.
189+ /*
188190 else if( orbital1 == s && ( orbital2 == dxy ||
189191 orbital2 == dyz ||
190192 orbital2 == dzz ||
@@ -287,6 +289,7 @@ double ZindoS::GetCoulombInt(OrbitalType orbital1, OrbitalType orbital2, Atom* a
287289 -atom->GetZindoF2ddLower()*2.0
288290 -atom->GetZindoF4ddLower()*4.0;
289291 }
292+ */
290293 else{
291294 stringstream ss;
292295 ss << this->errorMessageCoulombInt;
@@ -315,6 +318,13 @@ double ZindoS::GetExchangeInt(OrbitalType orbital1, OrbitalType orbital2, Atom*
315318 else if( orbital2 == s && (orbital1 == px || orbital1 == py || orbital1 == pz ) ){
316319 value = atom->GetZindoG1spLower();
317320 }
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+ /*
318328 else if( (orbital1 == s) && (orbital2 == dxy ||
319329 orbital2 == dyz ||
320330 orbital2 == dzz ||
@@ -329,11 +339,6 @@ double ZindoS::GetExchangeInt(OrbitalType orbital1, OrbitalType orbital2, Atom*
329339 orbital1 == dxxyy ) ){
330340 value = atom->GetZindoG2sdLower();
331341 }
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- }
337342 else if( (orbital1 == px && orbital2 == dzz) ||
338343 (orbital2 == px && orbital1 == dzz) ||
339344 (orbital1 == py && orbital2 == dzz) ||
@@ -406,6 +411,7 @@ double ZindoS::GetExchangeInt(OrbitalType orbital1, OrbitalType orbital2, Atom*
406411 value = atom->GetZindoF2ddLower()*3.0
407412 +atom->GetZindoF4ddLower()*20.0;
408413 }
414+ */
409415 else{
410416 stringstream ss;
411417 ss << this->errorMessageExchangeInt;
@@ -414,7 +420,6 @@ double ZindoS::GetExchangeInt(OrbitalType orbital1, OrbitalType orbital2, Atom*
414420 ss << this->errorMessageOrbitalType << OrbitalTypeStr(orbital2) << "\n";
415421 throw MolDSException(ss.str());
416422 }
417-
418423
419424 return value;
420425 }