计算化学公社

标题: 关于等值面的fortran子程序 [打印本页]

作者
Author:
besphed    时间: 2017-11-24 04:22
标题: 关于等值面的fortran子程序
各位好!
我最近用fortran做一些数值计算, 遇到画等值面的问题:
我能够数值计算得到函数f(x,y,z), 在任一点(x,y,z)处的值.
那么, 请问, 是否有fortran子程序, 可以方便地计算在给定
f(x,y,z)=Const., 其中Const.是某一给定的数值,
这种情况下的(x,y,z)的值?
其实, 上述问题, 就像是multiwfn中, 画某一分子轨道在给定等值面下的空间分布.
谢谢!!



作者
Author:
万里云    时间: 2017-11-24 09:46
用marching cube或者marching tetrahedron算法。
作者
Author:
sobereva    时间: 2017-11-25 12:06
看此文
Journal of Molecular Graphics and Modelling 38 (2012) 314–323
里面有Marching Tetrahedron算法非常详细的描述。而且文中提出了对MT算法的改进以减少冗余的表面顶点,这也是Multiwfn的定量分子表面分析功能所使用的算法。
基于现成的格点数据,构建等值面的表面顶点的子程序你可以从Multiwfn源代码中的surfana.f90中抠出来用,就是Fortran写的。
作者
Author:
besphed    时间: 2017-11-26 06:28
万里云 发表于 2017-11-24 09:46
用marching cube或者marching tetrahedron算法。

非常感谢!
作者
Author:
besphed    时间: 2017-11-26 06:29
sobereva 发表于 2017-11-25 12:06
看此文
Journal of Molecular Graphics and Modelling 38 (2012) 314–323
里面有Marching Tetrahedron算 ...

谢谢! sob老师总是这么给力!




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3