一般概念

ASE.库大量使用Python中包含的面向对象的编程功能。 对象 他们的对象 班级 因此是基于ASE的脚本中最相关的实体。 虽然ASE库由非常多的类组成,但它们可以将它们细分为以下部分中描述的以下三个主要组。

ASE.的组件

量子化学模型

像那些定义的对象 原子类 代表ASE的核心部分。 构建原子对象的不同方式由ASE库提供,包括用于特定类型的量子化学系统的构造函数,例如散装材料和表面,簇,纳米管等。 在运行时,原子对象始终包括关于它描述的量子化学模型的所有可用信息。 此外,原子类包括必不可少的 操纵原子模型的方法 under study.

尽管 原子 是在ASE脚本中最常见的竞争类别,其他几个对象在更专业的各个上下文中具有类似的目的。 The 约束和过滤类 是这种情况的重要例子,例如服务。在几何松弛时强制在系统上对系统进行定义的约束。

量子化学计算

计算器课程 提供所需的量子化学计算定义,以获得由原子对象定义的模型的所需物理性质。 这些类基本上接口ASE到特定量子化学程序,并包含将输入信息传输到该程序所需的方法,以及在完成程序运行后检索相应的结果。

计算器对于上述原子对象是必不可少的。 作为示例,由原子对象表示的系统的大多数物理属性需要关于如何实际计算结果的处方,这反过来由分配的计算器类进行调解。 由此,计算器对象通常在ASE运行期间成为原子对象的一部分(另见下一节)。

阿姆斯特丹造型套件内的ASE变体包括五个 其他计算器类 它能够使用计算 adf., 乐队, DFTB.雷克夫 分别在ASE中。

模拟定义

最后,第三类类(以下表示为仿真对象)表示用于给定的原子和计算器对象的组合进行的实际模拟。 这样的仿真对象可以例如表示一个简单的 几何松弛, a (数值)频率或者 声子计算, a 过渡状态搜索, or an entire Gobal优化 或者 分子动力学模拟.

典型的ASE运行

在上面呈现的三种的标准ASE运行对象中,以执行预期的计算。 典型的ASE运行组合如下

对象的定义和初始化

介意有替代的,通常更方便的方法可以从文件输入或系统特定预设中定义化学系统

MySystem     = 原子( <initializing variables> )
MyCalculator = <CalculatorClass>( <options> )
计算器→原子

计算器对象被分配给原子对象并成为其中的一部分。

MySystem.set_calculator( MyCalculator )

然后,参考计算结果的原子对象的方法可以直接从计算器呼叫方法。

原子→模拟

原子对象用作仿真对象的构造函数的初始化变量之一。

MySimulation = <SimulatorClass>( MySystem, <options> )

仿真对象现在能够自动更改系统对象(例如,通过在几何放宽期间设置新的原子坐标),并请求计算系统当前状态的所需物理属性。 模拟可以如下开始。

MySimulation.run( <options> )
评估

有时打印或进一步评估结果是有时方便的。通过计算两个不同系统之间的反应能量

MyReactands = 原子(..., calculator = MyCalculator(), ...)
MyProducts  = ...

# Relax both, MyReactands and MyProducts
...

E_R = MyReactands.get_potential_energy()
E_P = MyProducts.get_potential_energy()

print 'ReactionEnergy (eV) = ', E_P - E_R

头脑分别专门使用EV和Å作为能量和长度的单位。