| 查看: 1488 | 回复: 15 | |||
| 当前主题已经存档。 | |||
[交流]
【求助】寻找软件:分析高斯输出的分子轨道得到轨道成分的数字结果
|
|||
|
寻找软件: 析高斯输出的分子轨道得到轨道成分的数字结果 |
» 猜你喜欢
比利时鲁汶大学与国家留学基金委共同资助博士研究生CSC-KU Leuven PhD Scholarship
已经有0人回复
书籍求助:汽车市场营销理论与实务(电子版)——章小平
已经有0人回复
物理化学论文润色/翻译怎么收费?
已经有155人回复
东方理-中科大联合博士生招聘
已经有0人回复
伦敦大学学院Benjamin Moss博士招收人工智能、原位光谱、催化相关26年博士生
已经有11人回复
钴酸锂半电池小倍率容量上不去
已经有1人回复
吉林大学材料物理本科生求问调剂信息
已经有23人回复
2026第二届光电子与半导体器件前沿技术研讨会——光电子赋能·半导体创芯!
已经有1人回复
光电子赋能·半导体创芯!
已经有1人回复
光电子赋能·半导体创芯!
已经有0人回复
QE计算电声耦合的时候报错Error in routine lambda (100)wrong or too many modes
已经有2人回复
» 本主题相关商家推荐: (我也要在这里推广)

yjcmwgk
禁虫 (文坛精英)
密度泛函·小卒
- QC强帖: 38
- 应助: 165 (高中生)
- 贵宾: 16.999
- 金币: 553.8
- 散金: 39880
- 红花: 395
- 沙发: 2
- 帖子: 10406
- 在线: 1528.1小时
- 虫号: 448368
- 注册: 2007-11-01
- 专业: 理论和计算化学
- 管辖: 科研工具资源
★
erylingjet(金币+1,VIP+0):感谢交流 10-20 12:01
erylingjet(金币+1,VIP+0):感谢交流 10-20 12:01
2楼2009-10-20 10:52:42
zhou2009
版主 (著名写手)
- QC强帖: 15
- 应助: 337 (大学生)
- 贵宾: 4.053
- 金币: 42654.6
- 红花: 153
- 帖子: 1729
- 在线: 1274.7小时
- 虫号: 676800
- 注册: 2008-12-18
- 性别: GG
- 专业: 理论和计算化学
- 管辖: 量子化学
★ ★
lei0736(金币+2,VIP+0):谢谢 10-23 10:29
lei0736(金币+2,VIP+0):谢谢 10-23 10:29
|
见本论坛maomao6972的“轨道成分分析程序”: http://muchong.com/html/200811/1078422.html |
3楼2009-10-20 19:23:54
yytsnake
至尊木虫 (职业作家)
- 应助: 357 (硕士)
- 贵宾: 0.01
- 金币: 18204.3
- 散金: 5
- 红花: 36
- 帖子: 3189
- 在线: 444.6小时
- 虫号: 92066
- 注册: 2005-09-08
- 性别: GG
4楼2009-10-20 20:08:08
zhou2009
版主 (著名写手)
- QC强帖: 15
- 应助: 337 (大学生)
- 贵宾: 4.053
- 金币: 42654.6
- 红花: 153
- 帖子: 1729
- 在线: 1274.7小时
- 虫号: 676800
- 注册: 2008-12-18
- 性别: GG
- 专业: 理论和计算化学
- 管辖: 量子化学
5楼2009-10-21 08:05:17
zhou2009
版主 (著名写手)
- QC强帖: 15
- 应助: 337 (大学生)
- 贵宾: 4.053
- 金币: 42654.6
- 红花: 153
- 帖子: 1729
- 在线: 1274.7小时
- 虫号: 676800
- 注册: 2008-12-18
- 性别: GG
- 专业: 理论和计算化学
- 管辖: 量子化学
6楼2009-10-21 10:00:31
★ ★ ★ ★ ★ ★
yjcmwgk(金币+2,VIP+0):转载?原创? 10-21 13:20
小鱼儿1013(金币+3,VIP+0):xie xie 10-22 19:31
小鱼儿1013(金币+1,VIP+0):虽然不会 编程 但还是要谢谢你 10-23 08:36
yjcmwgk(金币+2,VIP+0):转载?原创? 10-21 13:20
小鱼儿1013(金币+3,VIP+0):xie xie 10-22 19:31
小鱼儿1013(金币+1,VIP+0):虽然不会 编程 但还是要谢谢你 10-23 08:36
|
如下是从fchk计算轨道成份的程序,你看一下,这里用的基组是6-311++g**你根据自己的需要改一改。 # include #include #include #include #include #include #include using namespace std; void clear(stringstream & buf) { char tmp[256]; while(!(buf.eof())) {buf>>tmp; } buf.clear(); } int main(int argc,char *argv[]) { ifstream myfile; int NUM_UNMO=atoi(argv[2]); myfile.open(argv[1]); if(!myfile) { cout<<"文件读错误"; system("pause" ;exit(1); } char buf[256]; stringstream stream; for(int i=0;i<3;i++) myfile.getline(buf,256); stream< stream>>buf; int numberofatom; stream>>numberofatom; clear(stream); //cout< myfile.getline(buf,256); stream< stream>>buf; int numberofaelectron; stream>>numberofaelectron; myfile.getline(buf,256); clear(stream); stream< stream>>buf; int numberofbelectron; stream>>numberofbelectron; //cout< { myfile.getline(buf,256); string tmp(buf); //cout< !=-1)break; } clear(stream); for(int i=0;i<(numberofatom/6+((numberofatom%6)?1:0));i++) {myfile.getline(buf,256); stream< vector for(int i=0;i int tmp; stream>>tmp; // cout< } // cout< while(!myfile.eof()) { myfile.getline(buf,256); string tmp(buf); //cout< !=-1)break; } vector clear(stream); for(int i=0;i<((numberofaelectron+NUM_UNMO)/5+(((numberofaelectron+NUM_UNMO)%5)?1:0));i++) {myfile.getline(buf,256); stream< for(int i=0;i double tmp; stream>>tmp; //convert to eV from hartree. tmp=tmp*27.21165; //cout< tmpvec.push_back(tmp); tmpvec.push_back(0.0); tmpvec.push_back(0.0); tmpvec.push_back(0.0); alphaenergies.push_back(tmpvec); } ///////////////////////////////////////// while(!myfile.eof()) { myfile.getline(buf,256); string tmp(buf); //cout< !=-1)break; } vector clear(stream); for(int i=0;i<((numberofbelectron+NUM_UNMO)/5+(((numberofbelectron+NUM_UNMO)%5)?1:0));i++) {myfile.getline(buf,256); //cout< for(int i=0;i double tmp; stream>>tmp; tmp*=27.21165; //cout< tmpvec.push_back(tmp); tmpvec.push_back(0.0); tmpvec.push_back(0.0); tmpvec.push_back(0.0); betaenergies.push_back(tmpvec); } //////////////////////////////////////////////////////////////////// while(!myfile.eof()) { myfile.getline(buf,256); string tmp(buf); //cout< !=-1)break; } //////////////////////////////////////////////////////////////////////////// //6-311++g** basis sets //C: s s p p p s p p p s p p p s p p p d d d d d //F: s s p p p s p p p s p p p s p p p d d d d d // H: s s s s p p p //////////////////////////////////////////////////////////////////////////// vector < pair < pair // the vecotr < pair for(int i=0;i int numofatom=i+1; if(atomlist<3) { coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); } else if((atomlist>2)||(atomlist<10)) { coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,0),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,1),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,2),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,2),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,2),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,2),make_pair(numofatom,0.0))); coefficientlist.push_back(make_pair(make_pair(atomlist,2),make_pair(numofatom,0.0))); } } for(int i=0;i cout< for(int j=0;j double tmp; myfile>>tmp; coefficientlist.second.second=tmp*tmp; } //read one orbital. double s=0.0; double p=0.0; double d=0.0; double s_iwant=0.0; double p_iwant=0.0; double d_iwant=0.0; for(int i=0;i if(coefficientlist.first.first==7) { if(coefficientlist.first.second==0) s_iwant+=coefficientlist.second.second; else if (coefficientlist.first.second==1) p_iwant+=coefficientlist.second.second; else if(coefficientlist.first.second==2) d_iwant+=coefficientlist.second.second; } //cout< else if (coefficientlist.first.second==1) p+=coefficientlist.second.second; else if(coefficientlist.first.second==2) d+=coefficientlist.second.second; } ///////////////////////////////////////////////////////////////////////////////////////////////// //刚在小木虫上看到有虫友们在问怎么样得到各个原子轨道成分,也有人给出答案 //,就是用每个原子轨道系数相平方和相加除以所有原子轨道系数平方和 ///////////////////////////////////////////////////////////////////////////////////////////////// alphaenergies[j][1]=s_iwant/(s+p+d); alphaenergies[j][2]=p_iwant/(s+p+d); alphaenergies[j][3]=d_iwant/(s+p+d); } cout<<"For Alpha:"< cout< /////////////////////////////////////////////////////////////////////////////////////////////////////// while(!myfile.eof()) { myfile.getline(buf,256); string tmp(buf); //cout< !=-1)break; } for(int j=0;j double tmp; myfile>>tmp; coefficientlist.second.second=tmp*tmp; } double s=0.0; double p=0.0; double d=0.0; double s_iwant=0.0; double p_iwant=0.0; double d_iwant=0.0; for(int i=0;i if(coefficientlist.first.first==7) { if(coefficientlist.first.second==0) s_iwant+=coefficientlist.second.second; else if (coefficientlist.first.second==1) p_iwant+=coefficientlist.second.second; else if(coefficientlist.first.second==2) d_iwant+=coefficientlist.second.second; } //cout< else if (coefficientlist.first.second==1) p+=coefficientlist.second.second; else if(coefficientlist.first.second==2) d+=coefficientlist.second.second; } ///////////////////////////////////////////////////////////////////////////////////////////////// //刚在小木虫上看到有虫友们在问怎么样得到各个原子轨道成分,也有人给出答案 //,就是用每个原子轨道系数相平方和相加除以所有原子轨道系数平方和 ///////////////////////////////////////////////////////////////////////////////////////////////// betaenergies[j][1]=s_iwant/(s+p+d); betaenergies[j][2]=p_iwant/(s+p+d); betaenergies[j][3]=d_iwant/(s+p+d); } cout<<"For Beta:"< cout< } |
7楼2009-10-21 10:14:05
yytsnake
至尊木虫 (职业作家)
- 应助: 357 (硕士)
- 贵宾: 0.01
- 金币: 18204.3
- 散金: 5
- 红花: 36
- 帖子: 3189
- 在线: 444.6小时
- 虫号: 92066
- 注册: 2005-09-08
- 性别: GG
8楼2009-10-21 11:06:51
yytsnake
至尊木虫 (职业作家)
- 应助: 357 (硕士)
- 贵宾: 0.01
- 金币: 18204.3
- 散金: 5
- 红花: 36
- 帖子: 3189
- 在线: 444.6小时
- 虫号: 92066
- 注册: 2005-09-08
- 性别: GG
9楼2009-10-21 14:45:28

10楼2009-10-22 19:29:33












回复此楼
;