| 查看: 1046 | 回复: 7 | |||
[求助]
想请教一个有关二面角的问题!已有1人参与
|
|
我现在使用tinker程序中的xyzint程序,将笛卡尔坐标(xyz coor.)转化为内坐标(internal coor.)的形式; 然后再使用其中的intxyz程序将内坐标转化回笛卡尔坐标形式,但是却得不到原来的构型! 关键的问题出现在转化二面角上,比如:二面角ABCD 程序中是先求出angle(ABC)所在平面的法向量;然后再求出angle(BCD)所在平面的法向量,最后求出两个平面的法向量,最终求出这两个平面的夹角! 我的问题是: 1. 当这两个平面重合的情况下,是应该没有二面角,还是0度或者180度? 因为这种情况下,程序中是处理成,二面角直接等于angle(ABD),这个平面角了,这样的处理不太理解! 2. 如果ABC三点或者BCD三点在同一条直线上,这样的二面角又该怎么处理? 3. 同样,如果两个平面重合的话,它们各自对应的法向量应该是什么关系呢? 我是学化学的,二面角以及向量这块儿,很是欠缺,求大侠帮助! |
» 猜你喜欢
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有6人回复
孩子确诊有中度注意力缺陷
已经有14人回复
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
请教一个 in-plane 和 out-of-plane 问题。
已经有10人回复
请教一个分子量分布的问题
已经有13人回复
请教一个问题,谢谢解答!
已经有11人回复
请教一个关于皂化酸化的问题
已经有7人回复
请教一个关于三氟甲基化的问题,懂得请进
已经有11人回复
请教一个电化学腐蚀的问题
已经有15人回复
请教一个用vesta建模的问题,谢谢!
已经有4人回复
请教一个关于香农公式的问题!急求!
已经有4人回复
各位师兄师姐,我想向大家请教下关于研究方向的一个选择问题
已经有9人回复
又是一个问题,关于二面角的???
已经有6人回复
晶体E编辑意见,急求怎么解决
已经有13人回复
请教一个手性物质的旋光性问题
已经有12人回复
请教一个关于origin模拟的问题,紧急,谢谢!
已经有15人回复
我是新手想请教一个关于细胞铺板的问题
已经有4人回复
请教一个plasmonics投稿的问题
已经有6人回复
【求助】有关酸度的问题想请教一下
已经有17人回复
【请教】关于二面角
已经有6人回复
【求助】请教一个关于解方程的问题
已经有8人回复
【求助/交流】请教一个NCBI上注释的问题
已经有5人回复
【求助】请问,怎么计算两个环的二面角
已经有7人回复
【请教】请教一个六方晶系的问题
已经有12人回复
【请教】请教一个关于图片精度的问题
已经有6人回复

feixiaolin
荣誉版主 (文坛精英)
-

专家经验: +518 - 应助: 942 (博后)
- 贵宾: 1.275
- 金币: 2930
- 散金: 58785
- 红花: 532
- 沙发: 11
- 帖子: 24215
- 在线: 2601.8小时
- 虫号: 2139575
- 注册: 2012-11-21
- 专业: 光学信息获取与处理
- 管辖: 数学
2楼2014-09-26 15:45:37
polypro
木虫 (正式写手)
- 应助: 197 (高中生)
- 金币: 3921.3
- 散金: 160
- 红花: 22
- 帖子: 512
- 在线: 62.6小时
- 虫号: 1809438
- 注册: 2012-05-11
- 性别: GG
- 专业: 理论和计算化学

3楼2014-09-28 08:28:25

4楼2014-09-28 11:16:12

5楼2014-09-28 11:18:00

6楼2014-09-28 11:21:19
polypro
木虫 (正式写手)
- 应助: 197 (高中生)
- 金币: 3921.3
- 散金: 160
- 红花: 22
- 帖子: 512
- 在线: 62.6小时
- 虫号: 1809438
- 注册: 2012-05-11
- 性别: GG
- 专业: 理论和计算化学
|
极坐标转换 !this sub to transfer Cartesian coordinates (x,y,z) with Polar coordinates (rou,theta,phi) (radius) !control number 1 for (x,y,z)=>(rou,theta,phi) and -1 is reverse !x=rou*sin(phi)*cos(theta) !x=rou*sin(phi)*sin(theta) !z=rou*cos(phi) subroutine trans(a,b,c,iflag) parameter(pi=3.1415926,h=0.01745329252) !pi/180 real rou,theta,phi real a,b,c integer iflag !1 from Cartesan to Polar, -1 is reverse (degree) !print*,"a b cini",a,b,c,iflag if(iflag==1)then !Cartesan to Polar rou=sqrt(a*a+b*b+c*c) if(rou.eq.0)then a=0 b=0 c=0 goto 80 endif phi=acos(c/rou) if(abs(rou-c).le.1e-3.or.abs(b).le.1e-3)then theta=0 !point on Z aixs or Y axis, thets==0 fixed! else if(abs(a).le.1e-3)then theta=pi/2.0 else sinphi=sqrt(1-c*c/rou/rou) theta=acos(a/rou/sinphi) endif endif if(b.lt.0)theta=-theta+pi !all is in degree a=rou b=theta/h c=phi/h !in radius else !polar to Cartesan rou=a if(rou.eq.0)then a=0 b=0 c=0 goto 80 endif theta=b*h phi=c*h c=rou*cos(phi) !z b=rou*sin(phi)*sin(theta) !y a=rou*sin(phi)*cos(theta) !x endif 80 continue !print*,"a b c",a,b,c,iflag END subroutine trans |

7楼2014-09-28 15:07:01
polypro
木虫 (正式写手)
- 应助: 197 (高中生)
- 金币: 3921.3
- 散金: 160
- 红花: 22
- 帖子: 512
- 在线: 62.6小时
- 虫号: 1809438
- 注册: 2012-05-11
- 性别: GG
- 专业: 理论和计算化学
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
xzz1007: 金币+20, ★★★很有帮助 2014-09-28 16:20:28
xzz1007: 金币+20, ★★★很有帮助 2014-09-28 16:20:28
|
另一个是计算二面角的,不需要极坐标转换(慢) 你说二个平面重合时,二面角等于0;也可以设为pi !!this sub to calculate torsion angle !!calculate torsion angle REF:wiki dihedral angle !! ¦Ó (a, b, c) = arg (¡Ýa N7 c + (a N7 b)(b N7 c), a N7 (b NW c)) . !!¦È = arg(x, y) !!cos ¦È = x/ (x2 + y 2 ) and sin ¦È = y/ (x2 + y 2 ). function torsion_angle(tia1,tia2,tia3,tia4) !4个atom series implicit none real torsion_angle real ax,ay,az,bx,by,bz,cx,cy,cz,r1,r2,r3 real tab,tac,tbc,t1,ctbcx,ctbcy,ctbcz,ctbax,ctbay,ctbaz,t2 integer tia1,tia2,tia3,tia4 ax=xx(tia2)-xx(tia1) ay=yy(tia2)-yy(tia1) az=zz(tia2)-zz(tia1) bx=xx(tia3)-xx(tia2) by=yy(tia3)-yy(tia2) bz=zz(tia3)-zz(tia2) cx=xx(tia4)-xx(tia3) cy=yy(tia4)-yy(tia3) cz=zz(tia4)-zz(tia3) r1=sqrt(ax*ax+ay*ay+az*az) r2=sqrt(bx*bx+by*by+bz*bz) r3=sqrt(cx*cx+cy*cy+cz*cz) if(r1*r2*r3<0.001)then torsion_angle=0.0 goto 33 endif ax=ax/r1 ay=ay/r1 az=az/r1 bx=bx/r2 by=by/r2 bz=bz/r2 cx=cx/r3 cy=cy/r3 cz=cz/r3 tab=ax*bx+ay*by+az*bz !dot product tac=ax*cx+ay*cy+az*cz tbc=bx*cx+by*cy+bz*cz t1=tab*tbc-tac ctbcx=by*cz-bz*cy !cross product bxc ctbcy=bz*cx-bx*cz ctbcz=bx*cy-by*cx ctbax=by*az-bz*ay !cross product bxa ctbay=bz*ax-bx*az ctbaz=bx*ay-by*ax t2=ax*ctbcx+ay*ctbcy+az*ctbcz !last term torsion_angle=acos(t1/sqrt(t1*t1+t2*t2)) !!0~pi !!judge the r2xr3 angle with r1, if acute (-180,0),else(-180,0) if(t2<0)torsion_angle=-1.0*torsion_angle !-pi~0 33 return end function torsion_angle |

8楼2014-09-28 15:10:25













回复此楼
