Révision | 915e6c28903fb5d522eb837be8881a71e30334c8 (tree) |
---|---|
l'heure | 2011-09-23 17:22:55 |
Auteur | Mikiya Fujii <mikiya.fujii@gmai...> |
Commiter | Mikiya Fujii |
base/GTOexpansionSTO.h is added and is not completely implemented.
git-svn-id: https://svn.sourceforge.jp/svnroot/molds/MolDS/trunk@125 1136aad2-a195-0410-b898-f5ea1d11b9d8
@@ -27,6 +27,7 @@ | ||
27 | 27 | #include"base/MallocerFreer.h" |
28 | 28 | #include"base/InputParser.h" |
29 | 29 | #include"base/Parameters.h" |
30 | +#include"base/GTOexpansionSTO.h" | |
30 | 31 | #include"cndo/Cndo2.h" |
31 | 32 | #include"indo/Indo.h" |
32 | 33 | #include"zindo/ZindoS.h" |
@@ -60,6 +61,7 @@ int main(){ | ||
60 | 61 | MallocerFreer::GetInstance(); |
61 | 62 | Parameters::GetInstance(); |
62 | 63 | LapackWrapper::GetInstance(); |
64 | + GTOexpansionSTO::GetInstance(); | |
63 | 65 | |
64 | 66 | |
65 | 67 | // Parse input |
@@ -151,6 +153,7 @@ int main(){ | ||
151 | 153 | } |
152 | 154 | |
153 | 155 | //Free |
156 | + GTOexpansionSTO::DeleteInstance(); | |
154 | 157 | LapackWrapper::DeleteInstance(); |
155 | 158 | Parameters::DeleteInstance(); |
156 | 159 | MallocerFreer::DeleteInstance(); |
@@ -44,6 +44,13 @@ RENUMSTR_BEGIN( CartesianType, CartesianTypeStr ) | ||
44 | 44 | RENUMSTR( CartesianType_end, "CartesianType_end" ) |
45 | 45 | RENUMSTR_END() |
46 | 46 | |
47 | +RENUMSTR_BEGIN( AzimuthalType, AzimuthalTypeStr ) | |
48 | + RENUMSTR( sAzimuthal, "s-azimuthal-quantum-number" ) | |
49 | + RENUMSTR( pAzimuthal, "p-azimuthal-quantum-number" ) | |
50 | + RENUMSTR( dAzimuthal, "d-azimuthal-quantum-number" ) | |
51 | + RENUMSTR( AzimuthalType_end, "AzimuthalType_end" ) | |
52 | +RENUMSTR_END() | |
53 | + | |
47 | 54 | RENUMSTR_BEGIN( OrbitalType, OrbitalTypeStr ) |
48 | 55 | RENUMSTR( s, "s" ) |
49 | 56 | RENUMSTR( py, "py" ) |
@@ -79,6 +86,16 @@ RENUMSTR_BEGIN( AtomType, AtomTypeStr ) | ||
79 | 86 | RENUMSTR( AtomType_end, "AtomType_end" ) |
80 | 87 | RENUMSTR_END() |
81 | 88 | |
89 | +RENUMSTR_BEGIN( STOnGType, STOnGTypeStr ) | |
90 | + RENUMSTR( STO1G, "STO1G" ) | |
91 | + RENUMSTR( STO2G, "STO2G" ) | |
92 | + RENUMSTR( STO3G, "STO3G" ) | |
93 | + RENUMSTR( STO4G, "STO4G" ) | |
94 | + RENUMSTR( STO5G, "STO5G" ) | |
95 | + RENUMSTR( STO6G, "STO6G" ) | |
96 | + RENUMSTR( STOnGType_end, "STOnGType_end" ) | |
97 | +RENUMSTR_END() | |
98 | + | |
82 | 99 | } |
83 | 100 | #endif |
84 | 101 |
@@ -0,0 +1,158 @@ | ||
1 | +#ifndef INCLUDED_GTOEXPANSIONSTO | |
2 | +#define INCLUDED_GTOEXPANSIONSTO | |
3 | + | |
4 | +#include<stdio.h> | |
5 | +#include<stdlib.h> | |
6 | +#include<iostream> | |
7 | +#include<string> | |
8 | + | |
9 | +using namespace std; | |
10 | +namespace MolDS_base{ | |
11 | + | |
12 | +// GTOexpansionSTO is singleton | |
13 | +class GTOexpansionSTO{ | |
14 | +public: | |
15 | + static GTOexpansionSTO* GetInstance(); | |
16 | + static void DeleteInstance(); | |
17 | + | |
18 | +private: | |
19 | + static GTOexpansionSTO* gTOexpansionSTO; | |
20 | + GTOexpansionSTO(); | |
21 | + GTOexpansionSTO(GTOexpansionSTO&); | |
22 | + void operator = (GTOexpansionSTO&); | |
23 | + ~GTOexpansionSTO(); | |
24 | + | |
25 | + void SetCoefficientsExponents(); | |
26 | + double exponents[STOnGType_end][ShellType_end][AzimuthalType_end][6]; | |
27 | + //[N:expansion number][Shelltype][quasi orbital type:s, p, or d][expansion index]. | |
28 | + //This is alpha in (3) of [S_1970]. See Table I and II in [S_1970] | |
29 | + double coefficients[STOnGType_end][ShellType_end][AzimuthalType_end][6]; | |
30 | + //[N:expansion number][Shelltype][quasi orbital type:s, p, or d][expansion index]. | |
31 | + //This is d in (3) of [S_1970]. See Table I and II in [S_1970] | |
32 | + | |
33 | +}; | |
34 | +GTOexpansionSTO* GTOexpansionSTO::gTOexpansionSTO = NULL; | |
35 | + | |
36 | +GTOexpansionSTO::GTOexpansionSTO(){ | |
37 | + this->SetCoefficientsExponents(); | |
38 | +} | |
39 | + | |
40 | +GTOexpansionSTO::~GTOexpansionSTO(){ | |
41 | +} | |
42 | + | |
43 | +GTOexpansionSTO* GTOexpansionSTO::GetInstance(){ | |
44 | + if(gTOexpansionSTO == NULL){ | |
45 | + gTOexpansionSTO = new GTOexpansionSTO(); | |
46 | + } | |
47 | + return gTOexpansionSTO; | |
48 | +} | |
49 | + | |
50 | +void GTOexpansionSTO::DeleteInstance(){ | |
51 | + if(gTOexpansionSTO != NULL){ | |
52 | + delete gTOexpansionSTO; | |
53 | + } | |
54 | + gTOexpansionSTO = NULL; | |
55 | +} | |
56 | + | |
57 | +// see Table I and II in [S_1970] | |
58 | +void GTOexpansionSTO::SetCoefficientsExponents(){ | |
59 | + | |
60 | + //STO-1G, k-shell | |
61 | + { | |
62 | + // 1s | |
63 | + exponents[STO1G][k][sAzimuthal][0] = 2.709498091*pow(10.0,-1.0); coefficients[STO1G][k][sAzimuthal][0] = 1.0000; | |
64 | + } | |
65 | + | |
66 | + //STO-1G, l-shell | |
67 | + { | |
68 | + // 2s | |
69 | + exponents[STO1G][l][sAzimuthal][0] = 1.012151084*pow(10.0,-1.0); coefficients[STO1G][l][sAzimuthal][0] = 1.0000; | |
70 | + // 2p | |
71 | + exponents[STO1G][l][pAzimuthal][0] = 1.759666885*pow(10.0,-1.0); coefficients[STO1G][l][sAzimuthal][0] = 1.0000; | |
72 | + } | |
73 | + | |
74 | + //STO-1G, m-shell | |
75 | + { | |
76 | + // 3s | |
77 | + exponents[STO1G][m][sAzimuthal][0] = 5.296881757*pow(10.0,-1.0); coefficients[STO1G][m][sAzimuthal][0] = 1.0000; | |
78 | + // 3p | |
79 | + exponents[STO1G][m][pAzimuthal][0] = 9.113614253*pow(10.0,-2.0); coefficients[STO1G][m][sAzimuthal][0] = 1.0000; | |
80 | + // 3d | |
81 | + exponents[STO1G][m][dAzimuthal][0] = 1.302270363*pow(10.0,-1.0); coefficients[STO1G][m][sAzimuthal][0] = 1.0000; | |
82 | + } | |
83 | + | |
84 | + //STO-2G, k-shell | |
85 | + { | |
86 | + // 1s | |
87 | + exponents[STO2G][k][sAzimuthal][0] = 8.518186635*pow(10.0,-1.0); coefficients[STO2G][k][sAzimuthal][0] = 4.301284983*pow(10,-1.0); | |
88 | + exponents[STO2G][k][sAzimuthal][1] = 1.516232927*pow(10.0,-1.0); coefficients[STO2G][k][sAzimuthal][1] = 6.789135305*pow(10,-1.0); | |
89 | + } | |
90 | +/* | |
91 | + //STO-2G, l-shell | |
92 | + { | |
93 | + // 2s | |
94 | + exponents[STO2G][l][sAzimuthal][0] = 1.292278611*pow(10.0,-1.0); coefficients[STO2G][l][sAzimuthal][0] = 7.470867124*pow(10,-1.0); | |
95 | + exponents[STO2G][l][sAzimuthal][1] = 4.908584205*pow(10.0,-2.0); coefficients[STO2G][l][sAzimuthal][1] = 2.855980556*pow(10,-1.0); | |
96 | + // 2p | |
97 | + exponents[STO2G][l][pAzimuthal][0] = *pow(10.0,-.0); coefficients[STO2G][l][pAzimuthal][0] = *pow(10,-.0); | |
98 | + exponents[STO2G][l][pAzimuthal][1] = *pow(10.0,-.0); coefficients[STO2G][l][pAzimuthal][1] = *pow(10,-.0); | |
99 | + } | |
100 | + | |
101 | + //STO-2G, m-shell | |
102 | + { | |
103 | + // 3s | |
104 | + exponents[STO2G][m][sAzimuthal][0] = *pow(10.0,-.0); coefficients[STO2G][m][sAzimuthal][0] = *pow(10,-.0); | |
105 | + exponents[STO2G][m][sAzimuthal][1] = *pow(10.0,-.0); coefficients[STO2G][m][sAzimuthal][1] = *pow(10,-.0); | |
106 | + // 3p | |
107 | + exponents[STO2G][m][pAzimuthal][0] = *pow(10.0,-.0); coefficients[STO2G][m][pAzimuthal][0] = *pow(10,-.0); | |
108 | + exponents[STO2G][m][pAzimuthal][1] = *pow(10.0,-.0); coefficients[STO2G][m][pAzimuthal][1] = *pow(10,-.0); | |
109 | + // 3d | |
110 | + exponents[STO2G][m][dAzimuthal][0] = *pow(10.0,-.0); coefficients[STO2G][m][dAzimuthal][0] = *pow(10,-.0); | |
111 | + exponents[STO2G][m][dAzimuthal][1] = *pow(10.0,-.0); coefficients[STO2G][m][dAzimuthal][1] = *pow(10,-.0); | |
112 | + } | |
113 | + | |
114 | + //STO-3G, k-shell | |
115 | + { | |
116 | + // 1s | |
117 | + exponents[STO3G][k][sAzimuthal][0] = *pow(10.0,-.0); coefficients[STO3G][k][sAzimuthal][0] = *pow(10,-.0); | |
118 | + exponents[STO3G][k][sAzimuthal][1] = *pow(10.0,-.0); coefficients[STO3G][k][sAzimuthal][1] = *pow(10,-.0); | |
119 | + exponents[STO3G][k][sAzimuthal][2] = *pow(10.0,-.0); coefficients[STO3G][k][sAzimuthal][2] = *pow(10,-.0); | |
120 | + } | |
121 | + | |
122 | + //STO-3G, l-shell | |
123 | + { | |
124 | + // 2s | |
125 | + exponents[STO3G][l][sAzimuthal][0] = *pow(10.0,-.0); coefficients[STO3G][l][sAzimuthal][0] = *pow(10,-.0); | |
126 | + exponents[STO3G][l][sAzimuthal][1] = *pow(10.0,-.0); coefficients[STO3G][l][sAzimuthal][1] = *pow(10,-.0); | |
127 | + exponents[STO3G][l][sAzimuthal][2] = *pow(10.0,-.0); coefficients[STO3G][l][sAzimuthal][2] = *pow(10,-.0); | |
128 | + // 2p | |
129 | + exponents[STO3G][l][pAzimuthal][0] = *pow(10.0,-.0); coefficients[STO3G][l][pAzimuthal][0] = *pow(10,-.0); | |
130 | + exponents[STO3G][l][pAzimuthal][1] = *pow(10.0,-.0); coefficients[STO3G][l][pAzimuthal][1] = *pow(10,-.0); | |
131 | + exponents[STO3G][l][pAzimuthal][1] = *pow(10.0,-.0); coefficients[STO3G][l][pAzimuthal][1] = *pow(10,-.0); | |
132 | + } | |
133 | + | |
134 | + //STO-3G, m-shell | |
135 | + { | |
136 | + // 3s | |
137 | + exponents[STO3G][m][sAzimuthal][0] = *pow(10.0,-.0); coefficients[STO3G][m][sAzimuthal][0] = *pow(10,-.0); | |
138 | + exponents[STO3G][m][sAzimuthal][1] = *pow(10.0,-.0); coefficients[STO3G][m][sAzimuthal][1] = *pow(10,-.0); | |
139 | + exponents[STO3G][m][sAzimuthal][2] = *pow(10.0,-.0); coefficients[STO3G][m][sAzimuthal][2] = *pow(10,-.0); | |
140 | + // 3p | |
141 | + exponents[STO3G][m][pAzimuthal][0] = *pow(10.0,-.0); coefficients[STO3G][m][pAzimuthal][0] = *pow(10,-.0); | |
142 | + exponents[STO3G][m][pAzimuthal][1] = *pow(10.0,-.0); coefficients[STO3G][m][pAzimuthal][1] = *pow(10,-.0); | |
143 | + exponents[STO3G][m][pAzimuthal][2] = *pow(10.0,-.0); coefficients[STO3G][m][pAzimuthal][2] = *pow(10,-.0); | |
144 | + // 3d | |
145 | + exponents[STO3G][m][dAzimuthal][0] = *pow(10.0,-.0); coefficients[STO3G][m][dAzimuthal][0] = *pow(10,-.0); | |
146 | + exponents[STO3G][m][dAzimuthal][1] = *pow(10.0,-.0); coefficients[STO3G][m][dAzimuthal][1] = *pow(10,-.0); | |
147 | + exponents[STO3G][m][dAzimuthal][2] = *pow(10.0,-.0); coefficients[STO3G][m][dAzimuthal][2] = *pow(10,-.0); | |
148 | + } | |
149 | +*/ | |
150 | +} | |
151 | + | |
152 | +} | |
153 | +#endif | |
154 | + | |
155 | + | |
156 | + | |
157 | + | |
158 | + |