Skip to content

设计理念

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支持导出的文件类型有:

  • gjf
  • mol
  • xyz
  • cub
  • obj

保存文件需要的信息都作为类实例的属性,需要为这些属性设置相应的值,然后执行save函数即可。

基本上所有的类实例都有个.fromMol(mol:Mole)方法,可以将分子对象传入,根据分子对象挂载的信息自动设置相应的属性值。