计算化学公社

 找回密码 Forget password
 注册 Register
Views: 2001|回复 Reply: 13
打印 Print 上一主题 Last thread 下一主题 Next thread

[Multiwfn资源与经验] 让Windows和Linux下的Multiwfn图形界面初步支持鼠标拖拽旋转分子

[复制链接 Copy URL]

214

帖子

5

威望

2197

eV
积分
2511

Level 5 (御坂)

本帖最后由 liuyuje714 于 2025-5-23 02:10 编辑




更新(2025.05.23):已经支持Linux系统下的鼠标拖拽分子,尝鲜版本点击下载:Multiwfn_3.8_dev_Linux_x64_2025.05.22 (依靠Centos 8静态编译,应该适用于大多数Linux系统)
由于X11和Win32有底层的差异,目前这个Linux版本旋转操作如下:
每次进行拖拽旋转的时候必须先点击一下图形区域,光标变成手形,代表可以进行左键按压旋转,然后再次点击并拖拽,此过程中光标为exchange形状就可以旋转了。因为Linux下底层是采用的X11,没有Win32那么好用,详情可以自行查看mouserotate.f90中的代码部分:

需要编译自行编译的可按照此链接说明:https://github.com/liuyujie714/Multiwfn_compile

开发寄语:是不是可以把`isys`判定系统类型并call的也用于Linux系统呢,好像在此之前添加一个call reawgt就可以了,不需要每次都要点击任意按钮来显示出图形。




尝试让Multiwfn的GUI分子界面支持鼠标左键拖拽旋转分子。
Multiwfn目前并不支持鼠标拖拽旋转分子操作,主要和Dislin库有关,没有直接支持。但是可以让它间接支持,我尝试注入一个Win32的鼠标事件接口,让这个操作成为可能。
目前只针对Windows系统,intel fortran编译器直接结合它自带的ifwin模块,如果是Mingw下gfortran编译器则直接使用C binding的方式,


基本用法:直接下载mouserotate.f90源文件,将其添加到最新Multiwfn的源码文件夹中,然后针对Multiwfn中特定的GUI界面函数添加一个回调,比如给GUI.f90中的subroutine drawmolgui 添加一个回调:
  1. use mouse_rotate_mod
复制代码
  1. call swgcbk(idisgraph, mouse_rotate)
复制代码


意思就是当鼠标左键单击分子界面矩形区域的时候,进行对应的鼠标事件响应。


最后编译源码即可,比如我这有个编译好的最新Multiwfn可以测试效果,只添加了上面这个界面的,因为Multiwfn的GUI有很多种,完全实现应该考虑多种GUI中修改和添加。
另外有个小问题就是当这个GUI被其他程序窗口顶层覆盖的时候再想激活旋转需要先鼠标左键在矩形区域点击两次,因为需要先捕获界面。

嘿嘿





评分 Rate

参与人数
Participants 27
威望 +1 eV +128 收起 理由
Reason
dzdhp + 5 好物!
yangqy + 5 牛!
Lingmou + 5 牛!
ZPLLL + 5 谢谢
风起~ + 5 GJ!
红红的太阳 + 5 牛!
大王来何 + 3 牛!
ryu_t + 5 とてもいい!
Freeman + 5 GJ!
轻舟~ + 5 牛!
gravitylead + 5 牛!
ghifi37 + 5 GJ!
KAIMISITERUI + 5
Uus/pMeC6H4-/キ + 5
guoguoping199 + 5 牛!
陈小北 + 5 好物!
ABetaCarw + 5 牛!
spinel + 5 赞!
Weldingspock + 5 好物!
adver + 5 牛!

查看全部评分 View all ratings

6万

帖子

99

威望

5万

eV
积分
120060

管理员

公社社长

2#
发表于 Post on 2025-4-14 01:49:51 | 只看该作者 Only view this author

效果非常好!可以说是解决了一个大问题

最近我刚好在DISLIN的邮件列表里看到有人讨论这个问题https://groups.google.com/g/dislin-users/c/LVCqRtpJ-_Y,也正考虑能不能弄到Multiwfn里

你的这个patch我近期等有时间的时候会弄到官方版里。
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

113

帖子

4

威望

4000

eV
积分
4193

Level 6 (一方通行)

3#
发表于 Post on 2025-4-14 08:37:10 | 只看该作者 Only view this author
效果真不错,赞!

419

帖子

1

威望

2543

eV
积分
2982

Level 5 (御坂)

4#
发表于 Post on 2025-4-14 09:07:54 | 只看该作者 Only view this author
您好,我这边在AMD的Zen2 CPU上运行有个报错
  1. Please verify that both the operating system and the processor support Intel(R) X87, CMOV, MMX, FXSAVE, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, MOVBE, POPCNT, AVX, F16C, FMA, BMI, LZCNT and AVX2 instructions.
复制代码
,请问是不是跟编译时候的优化指令有关呢?谢谢!

214

帖子

5

威望

2197

eV
积分
2511

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2025-4-14 09:09:18 | 只看该作者 Only view this author
本帖最后由 liuyuje714 于 2025-4-14 12:30 编辑
snljty2 发表于 2025-4-14 09:07
您好,我这边在AMD的Zen2 CPU上运行有个报错,请问是不是跟编译时候的优化指令有关呢?谢谢!

我这个开了avx2,估计是QxCORE-AVX2导致的。我更新了一下,用了SSE4.2,你试试看行不行

419

帖子

1

威望

2543

eV
积分
2982

Level 5 (御坂)

6#
发表于 Post on 2025-4-14 16:54:18 | 只看该作者 Only view this author
liuyuje714 发表于 2025-4-14 09:09
我这个开了avx2,估计是QxCORE-AVX2导致的。我更新了一下,用了SSE4.2,你试试看行不行

您好,还是一样的报错诶

214

帖子

5

威望

2197

eV
积分
2511

Level 5 (御坂)

7#
 楼主 Author| 发表于 Post on 2025-4-14 20:51:27 | 只看该作者 Only view this author
snljty2 发表于 2025-4-14 16:54
您好,还是一样的报错诶

现在可以了,测试了amd的U

419

帖子

1

威望

2543

eV
积分
2982

Level 5 (御坂)

8#
发表于 Post on 2025-4-15 08:58:13 | 只看该作者 Only view this author
liuyuje714 发表于 2025-4-14 20:51
现在可以了,测试了amd的U

收到,谢谢老师!

6万

帖子

99

威望

5万

eV
积分
120060

管理员

公社社长

9#
发表于 Post on 2025-4-26 21:48:00 | 只看该作者 Only view this author
我已将此代码植入了Multiwfn官方版,详见
http://bbs.keinsci.com/thread-53146-1-1.html
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

214

帖子

5

威望

2197

eV
积分
2511

Level 5 (御坂)

10#
 楼主 Author| 发表于 Post on 2025-5-23 02:11:57 | 只看该作者 Only view this author
update 2025.5.23,初步支持Linux系统,见一楼更新日志。

评分 Rate

参与人数
Participants 1
eV +8 收起 理由
Reason
sobereva + 8 GJ!

查看全部评分 View all ratings

6万

帖子

99

威望

5万

eV
积分
120060

管理员

公社社长

11#
发表于 Post on 2025-5-23 08:54:18 | 只看该作者 Only view this author
我有时间把linux的补丁也弄到官方版里

“开发寄语:是不是可以把`isys`判定系统类型并call的也用于Linux系统呢,好像在此之前添加一个call reawgt就可以了,不需要每次都要点击任意按钮来显示出图形。”  我不清楚意思,我试了没成功
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

214

帖子

5

威望

2197

eV
积分
2511

Level 5 (御坂)

12#
 楼主 Author| 发表于 Post on 2025-5-23 13:11:34 | 只看该作者 Only view this author
sobereva 发表于 2025-5-23 08:54
我有时间把linux的补丁也弄到官方版里

“开发寄语:是不是可以把`isys`判定系统类型并call的也用于Linux ...

比如drawmol子程序中的:
  1. call swgtyp("HORI","SCALE") !Reset the default mode for list widget
  2. idrawisosur=0 !Don't draw the cubmat in memory at first time go into the GUI
  3. if (isys==1) call drawmol !Directly show image in Windows GUI
  4. !However, in linux, "draw" widget is available only after WGFIN subroutine so we need a mouse event to active it, before this, the draw widget cannot be used, this is why "if (isys==1)"
  5. CALL WGFIN
复制代码
改成:
  1. call swgtyp("HORI","SCALE") !Reset the default mode for list widget
  2. idrawisosur=0 !Don't draw the cubmat in memory at first time go into the GUI
  3. call reawgt
  4. call drawmol !Directly show image in Windows GUI
  5. !However, in linux, "draw" widget is available only after WGFIN subroutine so we need a mouse event to active it, before this, the draw widget cannot be used, this is why "if (isys==1)"
  6. CALL WGFIN
复制代码


6万

帖子

99

威望

5万

eV
积分
120060

管理员

公社社长

13#
发表于 Post on 2025-5-24 06:43:38 | 只看该作者 Only view this author
liuyuje714 发表于 2025-5-23 13:11
比如drawmol子程序中的:
改成:

成功了。下次更新时会引入
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

6万

帖子

99

威望

5万

eV
积分
120060

管理员

公社社长

14#
发表于 Post on 2025-6-4 00:20:45 | 只看该作者 Only view this author
Linux版对鼠标旋转操作的支持今日也纳入Multiwfn官方版了
为了能让noGUI版顺利编译,对Makefile做了很多调整

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
Novice + 5 赞!

查看全部评分 View all ratings

北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-12 17:51 , Processed in 0.276496 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list