设计理念
pywfn开发的主要目的是用于计算分子性质(包含原子、键、空间等),同时还包含了一些实用工具及文件转换的功能 因此程序可以分为一下几个主要板块
- 读取器 用以从各种化学文件中读取计算分子性质需要的信息。
- 核心类 定义一些基础类型,存储数据,并实现一些基本操作。最核心的是
Mole类。 - 计算器 实现了各种各样的计算方法,输入
Mole的实例,根据Mole中挂载的数据进行计算。 - 保存器 将读取到的信息在转存为各种文件类型,可以实现文件类型的转换。
- 实用工具 这个板块比较杂,包含了在科研过程中可能会用到的各种工具,如支持信息提取等。
- 化学函数 该板块包含了一些不需要分子的独立的函数,如计算反应活化能、计算立体选择ee值等。
除此之外,pywfn中还包含了一些辅助性的模块,如 化学相关数据、动态链接库等。
💡 由于程序还在设计过程中,程序API的设计会经常改变,但是模块的设计应该是不会经常改变的
文件读取
pywfn支持读取以下格式的文件:
| 文件类型 | 说明 |
|---|---|
.log/.out | 高斯的输出文件 |
.fch | 高斯的检查点文件 |
.molden | 波函数信息 |
.gjf | 高斯输入文件,结构信息 |
.xyz | 结构信息 |
核心类型
pywfn定义了一些核心类型(包含在pywfn/base中),这些类型以Mol类作为根,其它的类实例化后挂载到Mol类中
Mole分子类Atom原子类Bond键类Basis基组类 存储 基函数信息Coefs系数类 存储 分子轨道信息
属性计算
计算各种分子相关的性质,根据计算目标的类型可以分为一下几种类型:
- 原子性质
pywfn.atomprop - 键の性质
pywfn.bondprop - 分子性质
pywfn.moleprop - 空间性质
pywfn.gridprop - 轨道性质
pywfn.orbtprop
原谅我有变量命名强迫症、不等长变量看着心里就是不舒服的😔
文件保存
pywfn支持导出的文件类型有:
gjfmolxyzcubobj
保存文件需要的信息都作为类实例的属性,需要为这些属性设置相应的值,然后执行save函数即可。
基本上所有的类实例都有个.fromMol(mol:Mole)方法,可以将分子对象传入,根据分子对象挂载的信息自动设置相应的属性值。