last-order的专栏
介绍: last-order的专栏
版主:29629
X
2 个月前
* [表格法求光谱项的原理](#principle) * [代码的思路](#thread) * [参考文献](#references) 本文原地址:[东方红茶馆-求解电子光谱项的程序](https://gensoukyo.me/求解电子光谱项的程序/) 相比于原文有删改,所以某些逻辑不清的地方可能是由于该原因。 该程序可以处理几乎所有的电子组态(包含的轨道有\\(s, p, d, f, g\\)),如 \\(({\rm s})^1({\rm p})^2({\rm d})^2\\)这样的组态。但目前不能求解如 \\((2{\rm p})^2(3{\rm p})^2\\)这一类组态的光谱项。 求原子光谱项有很多种方法,这里只介绍一种思路简单粗暴的方法。某种程度上可称为是逐一枚举的方法。(等你看完说不定会觉得这个方法很low23333) 其实该方法也可看作是结构化学教科书上讲解两个同科电子组态(\\( (n\text{p})^2 \\))的光谱项的方法的推广。 <h2 id="principle">表格法求光谱项的原理</h2> 为什么某一组态的能级会发生分裂呢?这是因为该组态是简并的(没有某些扰动的理想条件下),而当考虑了扰动后,原本简并的微观能级不再简并而发生分裂。 我们知道,对于多电子原子中的任意一个电子,其状态可由其单电子原子轨道(波函数)近似描述,其中单电子波函数含有四个量子数。也就是说只要确定了这四个量子数,便能够确定其状态。而组态只能确定电子的主量子数 \\(n\\)和角量子数 \\(l\\),并没有进一步描述电子的磁量子数 \\(m\\)和自旋磁量子数 \\(m_s\\)。 组态的能级分裂就是因为电子的磁量子数和自旋磁量子数的不同,虽然对于多电子原子来说使用总角量子数 \\(L\\)、总自旋量子数 \\(S\\)和总量子数 \\(J\\)的概念会更合适。 所以该方法的第一步是确定某一组态的所有微观能态。 以 \\(\text{d}^3\\)组态为例。我们首先要考虑其所有的电子排布方式。由于Pauli原理的限制,电子的状态没有完全相同的。d轨道有10个对应的自旋轨道,所以总的微观状态数为 \\( \left( \begin{matrix} 10 \\\ 3 \end{matrix} \right)=120 \\)。 以图所示的状态为例,三个电子的磁量子数分别为2、2、1,所以 \\(M_L=5\\)。而总自旋磁量子数 \\(M_S=1/2\\)。 #{r=278317} 也就是我们要计算一共120种微观能态的 \\(M_L\\)和\\(M_S\\)。如果手算的话,显然这是一个很麻烦的事情。 当我们将120种组合的 \\(M_L\\)和 \\(M_S\\)都算出来后,就可绘制出 \\(M_L\\)-\\(M_S\\)表格。 以总自旋磁量子数为例,三个电子共有四种情况。电子的自旋全部相同以及其中一个电子与另外两个的自旋不同。所以 \\(M_S=3/2, 1/2, -1/2, -3/2\\)。 相应地,\\(M_L=5, 4, 3,\ldots,-4, -5\\)。我们将各个组合中具有相同 \\(M_L\\)、\\(M_S\\)分别计数,便可得到该表。 #{r=278318} 然后只需要一步步从表中提取出光谱项即可。 #{r=278319} 从最大的 \\(M_L=5\\)开始看。\\(M_L\\)为 \\(L\\)的最大值,\\(L\\)的取值范围为 \\(0, 1,\ldots,\pm L \\)。而且对应的 \\(S(M_S)=1/2, -1/2\\)。由此我们可推断出该组态有一 \\(^2\text{H}\\)的光谱项。 然后我们将表格中二三列的数字均减去1,将该光谱项移除,得到第二步的表。 下图右边的是第二次约去光谱项后得到的表,此时 \\(L=3\ldots-3\\),而 \\(S=3/2, 1/2, -1/2, -3/2\\)。所以可提取出光谱项 \\(^4\text{F}\\)。 #{r=278320} 最后得到的 \\(\text{d}^3\\)组态的所有的光谱项为:\\(^2\text{H},\ ^2\text{G},\ ^4\text{F},\ ^2\text{F},\ ^2\text{D}(2),\ ^4\text{P},\ ^2\text{P} \\) 以上方法适用于任何同科电子组态光谱项的求算。而对于存在不同角量子数电子的组态(例如 \\(\text{p}^2\text{d}^2\\)),只需要先分别求得p轨道的电子以及d轨道的电子的组合,再将不同角量子数的组合再一次组合即可。以 \\(\text{p}^2\text{d}^2\\)组态为例,此时总的微观状态数为 \\( \left( \begin{matrix} 6 \\\ 2 \end{matrix} \right)\times\left( \begin{matrix} 10 \\\ 2 \end{matrix} \right)=15\times 45=675 \\)。这一方法说不上很高效,但思路很简单。之后生成表格的步骤则是完全一样的。 <h2 id="thread">代码的思路</h2> 我是用Fortran写的这个程序。下面主要介绍代码的思路。 源代码和程序的下载:#{r=278326} 首先以\\(d\\)轨道的同科电子组态为例。 d轨道共有10个自旋轨道,所以声明了两个含有10个元素的数组分别储存各自旋轨道的磁量子数和自旋磁量子数。 电子数是由用户输入的,然后依次列举所有的自旋轨道的组合并计算 \\(M_L\\)和 \\(M_S\\)并分别储存在两个数组中。这里需要注意,由于电子数并非事先写在程序中,所以列举组合的部分无法直接使用嵌套的循环来做到。这里使用的是一个利用递归的子程序来实现的。 然后统计 \\(M_L\\)和 \\(M_S\\)的取值各有多少种,并生成两个数组分别储存这些值(按由大到小的顺序依次储存)。 例如:120种组合的 \\(M_L\\)依次为(5, 3, 2, 3, -1, 5, 4, -2,...),而之后的那个数组为(5, 4, 3, 2,...,-4, -5)这11个值。 我们将前一个数组中的120个值与后一个数组进行比较,记录各个值出现的次数,便能够生成之前那个表中的数据。 对于具有不同角量子数的轨道的组态来说,则是分别将各个轨道上的组合再一次组合一次。 运行示例: #{r=278322} 关于直接输出光谱项的功能的实现 由于直接对输出的表格进行操作很麻烦,而且也不必要(因为对整个表格操作需要的循环实现困难,而且表无论是行还是列都是对称的)。所以为了实现该功能,我首先取原有的表格的左上部分单独存为一个如图所示的二维数组。 #{r=278324} 之后检查第一行各列的数字 \\(n\\),若为零,则跳过;若非零,则根据其对应的总角量子数 \\(L\\)和总自旋角量子数 \\(S\\)得到其光谱项(若不为1,输出的光谱项后会有类似<code>&#60;n&#62;</code>的标记,表明该光谱项的数目为 \\(n\\)),之后的各行与各列都减去 \\(n\\)。一行结束后,进入下一行,重复以上的步骤。(没看明白的话,可以按照第一节的例子跟着手算一下) 最终得到的结果是 <img alt="278323" src="/r/278323" width="500px"> <h2 id="references">参考文献</h2> 1. _Journal of Chemical Education_, 52(2), __1975__:87-89 2. 大学化学, 29(2), __2014__:44-46
X
2 个月前
* [表格法求光谱项的原理](#principle) * [代码的思路](#thread) * [参考文献](#references) 本文原地址:[东方红茶馆-求解电子光谱项的程序](https://gensoukyo.me/求解电子光谱项的程序/) 相比于原文有删改,所以某些逻辑不清的地方可能是由于该原因。 该程序可以处理几乎所有的电子组态(包含的轨道有\\(s, p, d, f, g\\)),如 \\(({\rm s})^1({\rm p})^2({\rm d})^2\\)这样的组态。但目前不能求解如 \\((2{\rm p})^2(3{\rm p})^2\\)这一类组态的光谱项。 求原子光谱项有很多种方法,这里只介绍一种思路简单粗暴的方法。某种程度上可称为是逐一枚举的方法。(等你看完说不定会觉得这个方法很low23333) 其实该方法也可看作是结构化学教科书上讲解两个同科电子组态(\\( (n\text{p})^2 \\))的光谱项的方法的推广。 <h2 id="principle">表格法求光谱项的原理</h2> 为什么某一组态的能级会发生分裂呢?这是因为该组态是简并的(没有某些扰动的理想条件下),而当考虑了扰动后,原本简并的微观能级不再简并而发生分裂。 我们知道,对于多电子原子中的任意一个电子,其状态可由其单电子原子轨道(波函数)近似描述,其中单电子波函数含有四个量子数。也就是说只要确定了这四个量子数,便能够确定其状态。而组态只能确定电子的主量子数 \\(n\\)和角量子数 \\(l\\),并没有进一步描述电子的磁量子数 \\(m\\)和自旋磁量子数 \\(m_s\\)。 组态的能级分裂就是因为电子的磁量子数和自旋磁量子数的不同,虽然对于多电子原子来说使用总角量子数 \\(L\\)、总自旋量子数 \\(S\\)和总量子数 \\(J\\)的概念会更合适。 所以该方法的第一步是确定某一组态的所有微观能态。 以 \\(\text{d}^3\\)组态为例。我们首先要考虑其所有的电子排布方式。由于Pauli原理的限制,电子的状态没有完全相同的。d轨道有10个对应的自旋轨道,所以总的微观状态数为 \\( \left( \begin{matrix} 10 \\\ 3 \end{matrix} \right)=120 \\)。 以图所示的状态为例,三个电子的磁量子数分别为2、2、1,所以 \\(M_L=5\\)。而总自旋磁量子数 \\(M_S=1/2\\)。 #{r=278317} 也就是我们要计算一共120种微观能态的 \\(M_L\\)和\\(M_S\\)。如果手算的话,显然这是一个很麻烦的事情。 当我们将120种组合的 \\(M_L\\)和 \\(M_S\\)都算出来后,就可绘制出 \\(M_L\\)-\\(M_S\\)表格。 以总自旋磁量子数为例,三个电子共有四种情况。电子的自旋全部相同以及其中一个电子与另外两个的自旋不同。所以 \\(M_S=3/2, 1/2, -1/2, -3/2\\)。 相应地,\\(M_L=5, 4, 3,\ldots,-4, -5\\)。我们将各个组合中具有相同 \\(M_L\\)、\\(M_S\\)分别计数,便可得到该表。 #{r=278318} 然后只需要一步步从表中提取出光谱项即可。 #{r=278319} 从最大的 \\(M_L=5\\)开始看。\\(M_L\\)为 \\(L\\)的最大值,\\(L\\)的取值范围为 \\(0, 1,\ldots,\pm L \\)。而且对应的 \\(S(M_S)=1/2, -1/2\\)。由此我们可推断出该组态有一 \\(^2\text{H}\\)的光谱项。 然后我们将表格中二三列的数字均减去1,将该光谱项移除,得到第二步的表。 下图右边的是第二次约去光谱项后得到的表,此时 \\(L=3\ldots-3\\),而 \\(S=3/2, 1/2, -1/2, -3/2\\)。所以可提取出光谱项 \\(^4\text{F}\\)。 #{r=278320} 最后得到的 \\(\text{d}^3\\)组态的所有的光谱项为:\\(^2\text{H},\ ^2\text{G},\ ^4\text{F},\ ^2\text{F},\ ^2\text{D}(2),\ ^4\text{P},\ ^2\text{P} \\) 以上方法适用于任何同科电子组态光谱项的求算。而对于存在不同角量子数电子的组态(例如 \\(\text{p}^2\text{d}^2\\)),只需要先分别求得p轨道的电子以及d轨道的电子的组合,再将不同角量子数的组合再一次组合即可。以 \\(\text{p}^2\text{d}^2\\)组态为例,此时总的微观状态数为 \\( \left( \begin{matrix} 6 \\\ 2 \end{matrix} \right)\times\left( \begin{matrix} 10 \\\ 2 \end{matrix} \right)=15\times 45=675 \\)。这一方法说不上很高效,但思路很简单。之后生成表格的步骤则是完全一样的。 <h2 id="thread">代码的思路</h2> 我是用Fortran写的这个程序。下面主要介绍代码的思路。 源代码和程序的下载:#{r=278326} 首先以\\(d\\)轨道的同科电子组态为例。 d轨道共有10个自旋轨道,所以声明了两个含有10个元素的数组分别储存各自旋轨道的磁量子数和自旋磁量子数。 电子数是由用户输入的,然后依次列举所有的自旋轨道的组合并计算 \\(M_L\\)和 \\(M_S\\)并分别储存在两个数组中。这里需要注意,由于电子数并非事先写在程序中,所以列举组合的部分无法直接使用嵌套的循环来做到。这里使用的是一个利用递归的子程序来实现的。 然后统计 \\(M_L\\)和 \\(M_S\\)的取值各有多少种,并生成两个数组分别储存这些值(按由大到小的顺序依次储存)。 例如:120种组合的 \\(M_L\\)依次为(5, 3, 2, 3, -1, 5, 4, -2,...),而之后的那个数组为(5, 4, 3, 2,...,-4, -5)这11个值。 我们将前一个数组中的120个值与后一个数组进行比较,记录各个值出现的次数,便能够生成之前那个表中的数据。 对于具有不同角量子数的轨道的组态来说,则是分别将各个轨道上的组合再一次组合一次。 运行示例: #{r=278322} 关于直接输出光谱项的功能的实现 由于直接对输出的表格进行操作很麻烦,而且也不必要(因为对整个表格操作需要的循环实现困难,而且表无论是行还是列都是对称的)。所以为了实现该功能,我首先取原有的表格的左上部分单独存为一个如图所示的二维数组。 #{r=278324} 之后检查第一行各列的数字 \\(n\\),若为零,则跳过;若非零,则根据其对应的总角量子数 \\(L\\)和总自旋角量子数 \\(S\\)得到其光谱项(若不为1,输出的光谱项后会有类似<code>&#60;n&#62;</code>的标记,表明该光谱项的数目为 \\(n\\)),之后的各行与各列都减去 \\(n\\)。一行结束后,进入下一行,重复以上的步骤。(没看明白的话,可以按照第一节的例子跟着手算一下) 最终得到的结果是 <img alt="278323" src="/r/278323" width="500px"> <h2 id="references">参考文献</h2> 1. _Journal of Chemical Education_, 52(2), __1975__:87-89 2. 大学化学, 29(2), __2014__:44-46
X
2 个月前
* [表格法求光谱项的原理](#principle) * [代码的思路](#thread) * [参考文献](#references) 本文原地址:[东方红茶馆-求解电子光谱项的程序](https://gensoukyo.me/求解电子光谱项的程序/) 相比于原文有删改,所以某些逻辑不清的地方可能是由于该原因。 该程序可以处理几乎所有的电子组态(包含的轨道有\\(s, p, d, f, g\\)),如 \\(({\rm s})^1({\rm p})^2({\rm d})^2\\)这样的组态。但目前不能求解如 \\((2{\rm p})^2(3{\rm p})^2\\)这一类组态的光谱项。 求原子光谱项有很多种方法,这里只介绍一种思路简单粗暴的方法。某种程度上可称为是逐一枚举的方法。(等你看完说不定会觉得这个方法很low23333) 其实该方法也可看作是结构化学教科书上讲解两个同科电子组态(\\( (n\text{p})^2 \\))的光谱项的方法的推广。 <h2 id="principle">表格法求光谱项的原理</h2> 为什么某一组态的能级会发生分裂呢?这是因为该组态是简并的(没有某些扰动的理想条件下),而当考虑了扰动后,原本简并的微观能级不再简并而发生分裂。 我们知道,对于多电子原子中的任意一个电子,其状态可由其单电子原子轨道(波函数)近似描述,其中单电子波函数含有四个量子数。也就是说只要确定了这四个量子数,便能够确定其状态。而组态只能确定电子的主量子数 \\(n\\)和角量子数 \\(l\\),并没有进一步描述电子的磁量子数 \\(m\\)和自旋磁量子数 \\(m_s\\)。 组态的能级分裂就是因为电子的磁量子数和自旋磁量子数的不同,虽然对于多电子原子来说使用总角量子数 \\(L\\)、总自旋量子数 \\(S\\)和总量子数 \\(J\\)的概念会更合适。 所以该方法的第一步是确定某一组态的所有微观能态。 以 \\(\text{d}^3\\)组态为例。我们首先要考虑其所有的电子排布方式。由于Pauli原理的限制,电子的状态没有完全相同的。d轨道有10个对应的自旋轨道,所以总的微观状态数为 \\( \left( \begin{matrix} 10 \\\ 3 \end{matrix} \right)=120 \\)。 以图所示的状态为例,三个电子的磁量子数分别为2、2、1,所以 \\(M_L=5\\)。而总自旋磁量子数 \\(M_S=1/2\\)。 #{r=278317} 也就是我们要计算一共120种微观能态的 \\(M_L\\)和\\(M_S\\)。如果手算的话,显然这是一个很麻烦的事情。 当我们将120种组合的 \\(M_L\\)和 \\(M_S\\)都算出来后,就可绘制出 \\(M_L\\)-\\(M_S\\)表格。 以总自旋磁量子数为例,三个电子共有四种情况。电子的自旋全部相同以及其中一个电子与另外两个的自旋不同。所以 \\(M_S=3/2, 1/2, -1/2, -3/2\\)。 相应地,\\(M_L=5, 4, 3,\ldots,-4, -5\\)。我们将各个组合中具有相同 \\(M_L\\)、\\(M_S\\)分别计数,便可得到该表。 #{r=278318} 然后只需要一步步从表中提取出光谱项即可。 #{r=278319} 从最大的 \\(M_L=5\\)开始看。\\(M_L\\)为 \\(L\\)的最大值,\\(L\\)的取值范围为 \\(0, 1,\ldots,\pm L \\)。而且对应的 \\(S(M_S)=1/2, -1/2\\)。由此我们可推断出该组态有一 \\(^2\text{H}\\)的光谱项。 然后我们将表格中二三列的数字均减去1,将该光谱项移除,得到第二步的表。 下图右边的是第二次约去光谱项后得到的表,此时 \\(L=3\ldots-3\\),而 \\(S=3/2, 1/2, -1/2, -3/2\\)。所以可提取出光谱项 \\(^4\text{F}\\)。 #{r=278320} 最后得到的 \\(\text{d}^3\\)组态的所有的光谱项为:\\(^2\text{H},\ ^2\text{G},\ ^4\text{F},\ ^2\text{F},\ ^2\text{D}(2),\ ^4\text{P},\ ^2\text{P} \\) 以上方法适用于任何同科电子组态光谱项的求算。而对于存在不同角量子数电子的组态(例如 \\(\text{p}^2\text{d}^2\\)),只需要先分别求得p轨道的电子以及d轨道的电子的组合,再将不同角量子数的组合再一次组合即可。以 \\(\text{p}^2\text{d}^2\\)组态为例,此时总的微观状态数为 \\( \left( \begin{matrix} 6 \\\ 2 \end{matrix} \right)\times\left( \begin{matrix} 10 \\\ 2 \end{matrix} \right)=15\times 45=675 \\)。这一方法说不上很高效,但思路很简单。之后生成表格的步骤则是完全一样的。 <h2 id="thread">代码的思路</h2> 我是用Fortran写的这个程序。下面主要介绍代码的思路。 源代码和程序的下载:#{r=278326} 首先以\\(d\\)轨道的同科电子组态为例。 d轨道共有10个自旋轨道,所以声明了两个含有10个元素的数组分别储存各自旋轨道的磁量子数和自旋磁量子数。 电子数是由用户输入的,然后依次列举所有的自旋轨道的组合并计算 \\(M_L\\)和 \\(M_S\\)并分别储存在两个数组中。这里需要注意,由于电子数并非事先写在程序中,所以列举组合的部分无法直接使用嵌套的循环来做到。这里使用的是一个利用递归的子程序来实现的。 然后统计 \\(M_L\\)和 \\(M_S\\)的取值各有多少种,并生成两个数组分别储存这些值(按由大到小的顺序依次储存)。 例如:120种组合的 \\(M_L\\)依次为(5, 3, 2, 3, -1, 5, 4, -2,...),而之后的那个数组为(5, 4, 3, 2,...,-4, -5)这11个值。 我们将前一个数组中的120个值与后一个数组进行比较,记录各个值出现的次数,便能够生成之前那个表中的数据。 对于具有不同角量子数的轨道的组态来说,则是分别将各个轨道上的组合再一次组合一次。 运行示例: #{r=278322} 关于直接输出光谱项的功能的实现 由于直接对输出的表格进行操作很麻烦,而且也不必要(因为对整个表格操作需要的循环实现困难,而且表无论是行还是列都是对称的)。所以为了实现该功能,我首先取原有的表格的左上部分单独存为一个如图所示的二维数组。 #{r=278324} 之后检查第一行各列的数字 \\(n\\),若为零,则跳过;若非零,则根据其对应的总角量子数 \\(L\\)和总自旋角量子数 \\(S\\)得到其光谱项(若不为1,输出的光谱项后会有类似<code>&#60;n&#62;</code>的标记,表明该光谱项的数目为 \\(n\\)),之后的各行与各列都减去 \\(n\\)。一行结束后,进入下一行,重复以上的步骤。(没看明白的话,可以按照第一节的例子跟着手算一下) 最终得到的结果是 <img alt="278323" src="/r/278323" width="500px"> <h2 id="references">参考文献</h2> 1. _Journal of Chemical Education_, 52(2), __1975__:87-89 2. 大学化学, 29(2), __2014__:44-46
X
2 个月前
* [表格法求光谱项的原理](#principle) * [代码的思路](#thread) * [参考文献](#references) 本文原地址:[东方红茶馆-求解电子光谱项的程序](https://gensoukyo.me/求解电子光谱项的程序/) 相比于原文有删改,所以某些逻辑不清的地方可能是由于该原因。 该程序可以处理几乎所有的电子组态(包含的轨道有\\(s, p, d, f, g\\)),如 \\(({\rm s})^1({\rm p})^2({\rm d})^2\\)这样的组态。但目前不能求解如 \\((2{\rm p})^2(3{\rm p})^2\\)这一类组态的光谱项。 求原子光谱项有很多种方法,这里只介绍一种思路简单粗暴的方法。某种程度上可称为是逐一枚举的方法。(等你看完说不定会觉得这个方法很low23333) 其实该方法也可看作是结构化学教科书上讲解两个同科电子组态(\\( (n\text{p})^2 \\))的光谱项的方法的推广。 <h2 id="principle">表格法求光谱项的原理</h2> 为什么某一组态的能级会发生分裂呢?这是因为该组态是简并的(没有某些扰动的理想条件下),而当考虑了扰动后,原本简并的微观能级不再简并而发生分裂。 我们知道,对于多电子原子中的任意一个电子,其状态可由其单电子原子轨道(波函数)近似描述,其中单电子波函数含有四个量子数。也就是说只要确定了这四个量子数,便能够确定其状态。而组态只能确定电子的主量子数 \\(n\\)和角量子数 \\(l\\),并没有进一步描述电子的磁量子数 \\(m\\)和自旋磁量子数 \\(m_s\\)。 组态的能级分裂就是因为电子的磁量子数和自旋磁量子数的不同,虽然对于多电子原子来说使用总角量子数 \\(L\\)、总自旋量子数 \\(S\\)和总量子数 \\(J\\)的概念会更合适。 所以该方法的第一步是确定某一组态的所有微观能态。 以 \\(\text{d}^3\\)组态为例。我们首先要考虑其所有的电子排布方式。由于Pauli原理的限制,电子的状态没有完全相同的。d轨道有10个对应的自旋轨道,所以总的微观状态数为 \\( \left( \begin{matrix} 10 \\\ 3 \end{matrix} \right)=120 \\)。 以图所示的状态为例,三个电子的磁量子数分别为2、2、1,所以 \\(M_L=5\\)。而总自旋磁量子数 \\(M_S=1/2\\)。 #{r=278317} 也就是我们要计算一共120种微观能态的 \\(M_L\\)和\\(M_S\\)。如果手算的话,显然这是一个很麻烦的事情。 当我们将120种组合的 \\(M_L\\)和 \\(M_S\\)都算出来后,就可绘制出 \\(M_L\\)-\\(M_S\\)表格。 以总自旋磁量子数为例,三个电子共有四种情况。电子的自旋全部相同以及其中一个电子与另外两个的自旋不同。所以 \\(M_S=3/2, 1/2, -1/2, -3/2\\)。 相应地,\\(M_L=5, 4, 3,\ldots,-4, -5\\)。我们将各个组合中具有相同 \\(M_L\\)、\\(M_S\\)分别计数,便可得到该表。 #{r=278318} 然后只需要一步步从表中提取出光谱项即可。 #{r=278319} 从最大的 \\(M_L=5\\)开始看。\\(M_L\\)为 \\(L\\)的最大值,\\(L\\)的取值范围为 \\(0, 1,\ldots,\pm L \\)。而且对应的 \\(S(M_S)=1/2, -1/2\\)。由此我们可推断出该组态有一 \\(^2\text{H}\\)的光谱项。 然后我们将表格中二三列的数字均减去1,将该光谱项移除,得到第二步的表。 下图右边的是第二次约去光谱项后得到的表,此时 \\(L=3\ldots-3\\),而 \\(S=3/2, 1/2, -1/2, -3/2\\)。所以可提取出光谱项 \\(^4\text{F}\\)。 #{r=278320} 最后得到的 \\(\text{d}^3\\)组态的所有的光谱项为:\\(^2\text{H},\ ^2\text{G},\ ^4\text{F},\ ^2\text{F},\ ^2\text{D}(2),\ ^4\text{P},\ ^2\text{P} \\) 以上方法适用于任何同科电子组态光谱项的求算。而对于存在不同角量子数电子的组态(例如 \\(\text{p}^2\text{d}^2\\)),只需要先分别求得p轨道的电子以及d轨道的电子的组合,再将不同角量子数的组合再一次组合即可。以 \\(\text{p}^2\text{d}^2\\)组态为例,此时总的微观状态数为 \\( \left( \begin{matrix} 6 \\\ 2 \end{matrix} \right)\times\left( \begin{matrix} 10 \\\ 2 \end{matrix} \right)=15\times 45=675 \\)。这一方法说不上很高效,但思路很简单。之后生成表格的步骤则是完全一样的。 <h2 id="thread">代码的思路</h2> 我是用Fortran写的这个程序。下面主要介绍代码的思路。 源代码和程序的下载:#{r=278326} 首先以\\(d\\)轨道的同科电子组态为例。 d轨道共有10个自旋轨道,所以声明了两个含有10个元素的数组分别储存各自旋轨道的磁量子数和自旋磁量子数。 电子数是由用户输入的,然后依次列举所有的自旋轨道的组合并计算 \\(M_L\\)和 \\(M_S\\)并分别储存在两个数组中。这里需要注意,由于电子数并非事先写在程序中,所以列举组合的部分无法直接使用嵌套的循环来做到。这里使用的是一个利用递归的子程序来实现的。 然后统计 \\(M_L\\)和 \\(M_S\\)的取值各有多少种,并生成两个数组分别储存这些值(按由大到小的顺序依次储存)。 例如:120种组合的 \\(M_L\\)依次为(5, 3, 2, 3, -1, 5, 4, -2,...),而之后的那个数组为(5, 4, 3, 2,...,-4, -5)这11个值。 我们将前一个数组中的120个值与后一个数组进行比较,记录各个值出现的次数,便能够生成之前那个表中的数据。 对于具有不同角量子数的轨道的组态来说,则是分别将各个轨道上的组合再一次组合一次。 运行示例: #{r=278322} 关于直接输出光谱项的功能的实现 由于直接对输出的表格进行操作很麻烦,而且也不必要(因为对整个表格操作需要的循环实现困难,而且表无论是行还是列都是对称的)。所以为了实现该功能,我首先取原有的表格的左上部分单独存为一个如图所示的二维数组。 #{r=278324} 之后检查第一行各列的数字 \\(n\\),若为零,则跳过;若非零,则根据其对应的总角量子数 \\(L\\)和总自旋角量子数 \\(S\\)得到其光谱项(若不为1,输出的光谱项后会有类似<code>&#60;n&#62;</code>的标记,表明该光谱项的数目为 \\(n\\)),之后的各行与各列都减去 \\(n\\)。一行结束后,进入下一行,重复以上的步骤。(没看明白的话,可以按照第一节的例子跟着手算一下) 最终得到的结果是 <img alt="278323" src="/r/278323" width="500px"> <h2 id="references">参考文献</h2> 1. _Journal of Chemical Education_, 52(2), __1975__:87-89 2. 大学化学, 29(2), __2014__:44-46
X
2 个月前
* [表格法求光谱项的原理](#principle) * [代码的思路](#thread) * [参考文献](#references) 本文原地址:[东方红茶馆-求解电子光谱项的程序](https://gensoukyo.me/求解电子光谱项的程序/) 相比于原文有删改,所以某些逻辑不清的地方可能是由于该原因。 该程序可以处理几乎所有的电子组态(包含的轨道有\\(s, p, d, f, g\\)),如 \\(({\rm s})^1({\rm p})^2({\rm d})^2\\)这样的组态。但目前不能求解如 \\((2{\rm p})^2(3{\rm p})^2\\)这一类组态的光谱项。 求原子光谱项有很多种方法,这里只介绍一种思路简单粗暴的方法。某种程度上可称为是逐一枚举的方法。(等你看完说不定会觉得这个方法很low23333) 其实该方法也可看作是结构化学教科书上讲解两个同科电子组态(\\( (n\text{p})^2 \\))的光谱项的方法的推广。 <h2 id="principle">表格法求光谱项的原理</h2> 为什么某一组态的能级会发生分裂呢?这是因为该组态是简并的(没有某些扰动的理想条件下),而当考虑了扰动后,原本简并的微观能级不再简并而发生分裂。 我们知道,对于多电子原子中的任意一个电子,其状态可由其单电子原子轨道(波函数)近似描述,其中单电子波函数含有四个量子数。也就是说只要确定了这四个量子数,便能够确定其状态。而组态只能确定电子的主量子数 \\(n\\)和角量子数 \\(l\\),并没有进一步描述电子的磁量子数 \\(m\\)和自旋磁量子数 \\(m_s\\)。 组态的能级分裂就是因为电子的磁量子数和自旋磁量子数的不同,虽然对于多电子原子来说使用总角量子数 \\(L\\)、总自旋量子数 \\(S\\)和总量子数 \\(J\\)的概念会更合适。 所以该方法的第一步是确定某一组态的所有微观能态。 以 \\(\text{d}^3\\)组态为例。我们首先要考虑其所有的电子排布方式。由于Pauli原理的限制,电子的状态没有完全相同的。d轨道有10个对应的自旋轨道,所以总的微观状态数为 \\( \left( \begin{matrix} 10 \\\ 3 \end{matrix} \right)=120 \\)。 以图所示的状态为例,三个电子的磁量子数分别为2、2、1,所以 \\(M_L=5\\)。而总自旋磁量子数 \\(M_S=1/2\\)。 #{r=278317} 也就是我们要计算一共120种微观能态的 \\(M_L\\)和\\(M_S\\)。如果手算的话,显然这是一个很麻烦的事情。 当我们将120种组合的 \\(M_L\\)和 \\(M_S\\)都算出来后,就可绘制出 \\(M_L\\)-\\(M_S\\)表格。 以总自旋磁量子数为例,三个电子共有四种情况。电子的自旋全部相同以及其中一个电子与另外两个的自旋不同。所以 \\(M_S=3/2, 1/2, -1/2, -3/2\\)。 相应地,\\(M_L=5, 4, 3,\ldots,-4, -5\\)。我们将各个组合中具有相同 \\(M_L\\)、\\(M_S\\)分别计数,便可得到该表。 #{r=278318} 然后只需要一步步从表中提取出光谱项即可。 #{r=278319} 从最大的 \\(M_L=5\\)开始看。\\(M_L\\)为 \\(L\\)的最大值,\\(L\\)的取值范围为 \\(0, 1,\ldots,\pm L \\)。而且对应的 \\(S(M_S)=1/2, -1/2\\)。由此我们可推断出该组态有一 \\(^2\text{H}\\)的光谱项。 然后我们将表格中二三列的数字均减去1,将该光谱项移除,得到第二步的表。 下图右边的是第二次约去光谱项后得到的表,此时 \\(L=3\ldots-3\\),而 \\(S=3/2, 1/2, -1/2, -3/2\\)。所以可提取出光谱项 \\(^4\text{F}\\)。 #{r=278320} 最后得到的 \\(\text{d}^3\\)组态的所有的光谱项为:\\(^2\text{H},\ ^2\text{G},\ ^4\text{F},\ ^2\text{F},\ ^2\text{D}(2),\ ^4\text{P},\ ^2\text{P} \\) 以上方法适用于任何同科电子组态光谱项的求算。而对于存在不同角量子数电子的组态(例如 \\(\text{p}^2\text{d}^2\\)),只需要先分别求得p轨道的电子以及d轨道的电子的组合,再将不同角量子数的组合再一次组合即可。以 \\(\text{p}^2\text{d}^2\\)组态为例,此时总的微观状态数为 \\( \left( \begin{matrix} 6 \\\ 2 \end{matrix} \right)\times\left( \begin{matrix} 10 \\\ 2 \end{matrix} \right)=15\times 45=675 \\)。这一方法说不上很高效,但思路很简单。之后生成表格的步骤则是完全一样的。 <h2 id="thread">代码的思路</h2> 我是用Fortran写的这个程序。下面主要介绍代码的思路。 源代码和程序的下载:#{r=278326} 首先以\\(d\\)轨道的同科电子组态为例。 d轨道共有10个自旋轨道,所以声明了两个含有10个元素的数组分别储存各自旋轨道的磁量子数和自旋磁量子数。 电子数是由用户输入的,然后依次列举所有的自旋轨道的组合并计算 \\(M_L\\)和 \\(M_S\\)并分别储存在两个数组中。这里需要注意,由于电子数并非事先写在程序中,所以列举组合的部分无法直接使用嵌套的循环来做到。这里使用的是一个利用递归的子程序来实现的。 然后统计 \\(M_L\\)和 \\(M_S\\)的取值各有多少种,并生成两个数组分别储存这些值(按由大到小的顺序依次储存)。 例如:120种组合的 \\(M_L\\)依次为(5, 3, 2, 3, -1, 5, 4, -2,...),而之后的那个数组为(5, 4, 3, 2,...,-4, -5)这11个值。 我们将前一个数组中的120个值与后一个数组进行比较,记录各个值出现的次数,便能够生成之前那个表中的数据。 对于具有不同角量子数的轨道的组态来说,则是分别将各个轨道上的组合再一次组合一次。 运行示例: #{r=278322} 关于直接输出光谱项的功能的实现 由于直接对输出的表格进行操作很麻烦,而且也不必要(因为对整个表格操作需要的循环实现困难,而且表无论是行还是列都是对称的)。所以为了实现该功能,我首先取原有的表格的左上部分单独存为一个如图所示的二维数组。 #{r=278324} 之后检查第一行各列的数字 \\(n\\),若为零,则跳过;若非零,则根据其对应的总角量子数 \\(L\\)和总自旋角量子数 \\(S\\)得到其光谱项(若不为1,输出的光谱项后会有类似<code>&#60;n&#62;</code>的标记,表明该光谱项的数目为 \\(n\\)),之后的各行与各列都减去 \\(n\\)。一行结束后,进入下一行,重复以上的步骤。(没看明白的话,可以按照第一节的例子跟着手算一下) 最终得到的结果是 <img alt="278323" src="/r/278323" width="500px"> <h2 id="references">参考文献</h2> 1. _Journal of Chemical Education_, 52(2), __1975__:87-89 2. 大学化学, 29(2), __2014__:44-46
X
2 个月前
* [表格法求光谱项的原理](#principle) * [代码的思路](#thread) * [参考文献](#references) 本文原地址:[东方红茶馆-求解电子光谱项的程序](https://gensoukyo.me/求解电子光谱项的程序/) 相比于原文有删改,所以某些逻辑不清的地方可能是由于该原因。 该程序可以处理几乎所有的电子组态(包含的轨道有\\(s, p, d, f, g\\)),如 \\(({\rm s})^1({\rm p})^2({\rm d})^2\\)这样的组态。但目前不能求解如 \\((2{\rm p})^2(3{\rm p})^2\\)这一类组态的光谱项。 求原子光谱项有很多种方法,这里只介绍一种思路简单粗暴的方法。某种程度上可称为是逐一枚举的方法。(等你看完说不定会觉得这个方法很low23333) 其实该方法也可看作是结构化学教科书上讲解两个同科电子组态(\\( (n\text{p})^2 \\))的光谱项的方法的推广。 <h2 id="principle">表格法求光谱项的原理</h2> 为什么某一组态的能级会发生分裂呢?这是因为该组态是简并的(没有某些扰动的理想条件下),而当考虑了扰动后,原本简并的微观能级不再简并而发生分裂。 我们知道,对于多电子原子中的任意一个电子,其状态可由其单电子原子轨道(波函数)近似描述,其中单电子波函数含有四个量子数。也就是说只要确定了这四个量子数,便能够确定其状态。而组态只能确定电子的主量子数 \\(n\\)和角量子数 \\(l\\),并没有进一步描述电子的磁量子数 \\(m\\)和自旋磁量子数 \\(m_s\\)。 组态的能级分裂就是因为电子的磁量子数和自旋磁量子数的不同,虽然对于多电子原子来说使用总角量子数 \\(L\\)、总自旋量子数 \\(S\\)和总量子数 \\(J\\)的概念会更合适。 所以该方法的第一步是确定某一组态的所有微观能态。 以 \\(\text{d}^3\\)组态为例。我们首先要考虑其所有的电子排布方式。由于Pauli原理的限制,电子的状态没有完全相同的。d轨道有10个对应的自旋轨道,所以总的微观状态数为 \\( \left( \begin{matrix} 10 \\\ 3 \end{matrix} \right)=120 \\)。 以图所示的状态为例,三个电子的磁量子数分别为2、2、1,所以 \\(M_L=5\\)。而总自旋磁量子数 \\(M_S=1/2\\)。 #{r=278317} 也就是我们要计算一共120种微观能态的 \\(M_L\\)和\\(M_S\\)。如果手算的话,显然这是一个很麻烦的事情。 当我们将120种组合的 \\(M_L\\)和 \\(M_S\\)都算出来后,就可绘制出 \\(M_L\\)-\\(M_S\\)表格。 以总自旋磁量子数为例,三个电子共有四种情况。电子的自旋全部相同以及其中一个电子与另外两个的自旋不同。所以 \\(M_S=3/2, 1/2, -1/2, -3/2\\)。 相应地,\\(M_L=5, 4, 3,\ldots,-4, -5\\)。我们将各个组合中具有相同 \\(M_L\\)、\\(M_S\\)分别计数,便可得到该表。 #{r=278318} 然后只需要一步步从表中提取出光谱项即可。 #{r=278319} 从最大的 \\(M_L=5\\)开始看。\\(M_L\\)为 \\(L\\)的最大值,\\(L\\)的取值范围为 \\(0, 1,\ldots,\pm L \\)。而且对应的 \\(S(M_S)=1/2, -1/2\\)。由此我们可推断出该组态有一 \\(^2\text{H}\\)的光谱项。 然后我们将表格中二三列的数字均减去1,将该光谱项移除,得到第二步的表。 下图右边的是第二次约去光谱项后得到的表,此时 \\(L=3\ldots-3\\),而 \\(S=3/2, 1/2, -1/2, -3/2\\)。所以可提取出光谱项 \\(^4\text{F}\\)。 #{r=278320} 最后得到的 \\(\text{d}^3\\)组态的所有的光谱项为:\\(^2\text{H},\ ^2\text{G},\ ^4\text{F},\ ^2\text{F},\ ^2\text{D}(2),\ ^4\text{P},\ ^2\text{P} \\) 以上方法适用于任何同科电子组态光谱项的求算。而对于存在不同角量子数电子的组态(例如 \\(\text{p}^2\text{d}^2\\)),只需要先分别求得p轨道的电子以及d轨道的电子的组合,再将不同角量子数的组合再一次组合即可。以 \\(\text{p}^2\text{d}^2\\)组态为例,此时总的微观状态数为 \\( \left( \begin{matrix} 6 \\\ 2 \end{matrix} \right)\times\left( \begin{matrix} 10 \\\ 2 \end{matrix} \right)=15\times 45=675 \\)。这一方法说不上很高效,但思路很简单。之后生成表格的步骤则是完全一样的。 <h2 id="thread">代码的思路</h2> 我是用Fortran写的这个程序。下面主要介绍代码的思路。 源代码和程序的下载:#{r=278326} 首先以\\(d\\)轨道的同科电子组态为例。 d轨道共有10个自旋轨道,所以声明了两个含有10个元素的数组分别储存各自旋轨道的磁量子数和自旋磁量子数。 电子数是由用户输入的,然后依次列举所有的自旋轨道的组合并计算 \\(M_L\\)和 \\(M_S\\)并分别储存在两个数组中。这里需要注意,由于电子数并非事先写在程序中,所以列举组合的部分无法直接使用嵌套的循环来做到。这里使用的是一个利用递归的子程序来实现的。 然后统计 \\(M_L\\)和 \\(M_S\\)的取值各有多少种,并生成两个数组分别储存这些值(按由大到小的顺序依次储存)。 例如:120种组合的 \\(M_L\\)依次为(5, 3, 2, 3, -1, 5, 4, -2,...),而之后的那个数组为(5, 4, 3, 2,...,-4, -5)这11个值。 我们将前一个数组中的120个值与后一个数组进行比较,记录各个值出现的次数,便能够生成之前那个表中的数据。 对于具有不同角量子数的轨道的组态来说,则是分别将各个轨道上的组合再一次组合一次。 运行示例: #{r=278322} 关于直接输出光谱项的功能的实现 由于直接对输出的表格进行操作很麻烦,而且也不必要(因为对整个表格操作需要的循环实现困难,而且表无论是行还是列都是对称的)。所以为了实现该功能,我首先取原有的表格的左上部分单独存为一个如图所示的二维数组。 #{r=278324} 之后检查第一行各列的数字 \\(n\\),若为零,则跳过;若非零,则根据其对应的总角量子数 \\(L\\)和总自旋角量子数 \\(S\\)得到其光谱项(若不为1,输出的光谱项后会有类似<code>&#60;n&#62;</code>的标记,表明该光谱项的数目为 \\(n\\)),之后的各行与各列都减去 \\(n\\)。一行结束后,进入下一行,重复以上的步骤。(没看明白的话,可以按照第一节的例子跟着手算一下) 最终得到的结果是 <img alt="278323" src="/r/278323" width="500px"> <h2 id="references">参考文献</h2> 1. _Journal of Chemical Education_, 52(2), __1975__:87-89 2. 大学化学, 29(2), __2014__:44-46
Po
2 个月前
* [表格法求光谱项的原理](#principle) * [代码的思路](#thread) * [参考文献](#references) 本文原地址:[东方红茶馆-求解电子光谱项的程序](https://gensoukyo.me/求解电子光谱项的程序/) 相比于原文有删改,所以某些逻辑不清的地方可能是由于该原因。 该程序可以处理几乎所有的电子组态(包含的轨道有\\(s, p, d, f, g\\)),如 \\(({\rm s})^1({\rm p})^2({\rm d})^2\\)这样的组态。但目前不能求解如 \\((2{\rm p})^2(3{\rm p})^2\\)这一类组态的光谱项。 求原子光谱项有很多种方法,这里只介绍一种思路简单粗暴的方法。某种程度上可称为是逐一枚举的方法。(等你看完说不定会觉得这个方法很low23333) 其实该方法也可看作是结构化学教科书上讲解两个同科电子组态(\\( (n\text{p})^2 \\))的光谱项的方法的推广。 <h2 id="principle">表格法求光谱项的原理</h2> 为什么某一组态的能级会发生分裂呢?这是因为该组态是简并的(没有某些扰动的理想条件下),而当考虑了扰动后,原本简并的微观能级不再简并而发生分裂。 我们知道,对于多电子原子中的任意一个电子,其状态可由其单电子原子轨道(波函数)近似描述,其中单电子波函数含有四个量子数。也就是说只要确定了这四个量子数,便能够确定其状态。而组态只能确定电子的主量子数 \\(n\\)和角量子数 \\(l\\),并没有进一步描述电子的磁量子数 \\(m\\)和自旋磁量子数 \\(m_s\\)。 组态的能级分裂就是因为电子的磁量子数和自旋磁量子数的不同,虽然对于多电子原子来说使用总角量子数 \\(L\\)、总自旋量子数 \\(S\\)和总量子数 \\(J\\)的概念会更合适。 所以该方法的第一步是确定某一组态的所有微观能态。 以 \\(\text{d}^3\\)组态为例。我们首先要考虑其所有的电子排布方式。由于Pauli原理的限制,电子的状态没有完全相同的。d轨道有10个对应的自旋轨道,所以总的微观状态数为 \\( \left( \begin{matrix} 10 \\\ 3 \end{matrix} \right)=120 \\)。 以图所示的状态为例,三个电子的磁量子数分别为2、2、1,所以 \\(M_L=5\\)。而总自旋磁量子数 \\(M_S=1/2\\)。 #{r=278317} 也就是我们要计算一共120种微观能态的 \\(M_L\\)和\\(M_S\\)。如果手算的话,显然这是一个很麻烦的事情。 当我们将120种组合的 \\(M_L\\)和 \\(M_S\\)都算出来后,就可绘制出 \\(M_L\\)-\\(M_S\\)表格。 以总自旋磁量子数为例,三个电子共有四种情况。电子的自旋全部相同以及其中一个电子与另外两个的自旋不同。所以 \\(M_S=3/2, 1/2, -1/2, -3/2\\)。 相应地,\\(M_L=5, 4, 3,\ldots,-4, -5\\)。我们将各个组合中具有相同 \\(M_L\\)、\\(M_S\\)分别计数,便可得到该表。 #{r=278318} 然后只需要一步步从表中提取出光谱项即可。 #{r=278319} 从最大的 \\(M_L=5\\)开始看。\\(M_L\\)为 \\(L\\)的最大值,\\(L\\)的取值范围为 \\(0, 1,\ldots,\pm L \\)。而且对应的 \\(S(M_S)=1/2, -1/2\\)。由此我们可推断出该组态有一 \\(^2\text{H}\\)的光谱项。 然后我们将表格中二三列的数字均减去1,将该光谱项移除,得到第二步的表。 下图右边的是第二次约去光谱项后得到的表,此时 \\(L=3\ldots-3\\),而 \\(S=3/2, 1/2, -1/2, -3/2\\)。所以可提取出光谱项 \\(^4\text{F}\\)。 #{r=278320} 最后得到的 \\(\text{d}^3\\)组态的所有的光谱项为:\\(^2\text{H},\ ^2\text{G},\ ^4\text{F},\ ^2\text{F},\ ^2\text{D}(2),\ ^4\text{P},\ ^2\text{P} \\) 以上方法适用于任何同科电子组态光谱项的求算。而对于存在不同角量子数电子的组态(例如 \\(\text{p}^2\text{d}^2\\)),只需要先分别求得p轨道的电子以及d轨道的电子的组合,再将不同角量子数的组合再一次组合即可。以 \\(\text{p}^2\text{d}^2\\)组态为例,此时总的微观状态数为 \\( \left( \begin{matrix} 6 \\\ 2 \end{matrix} \right)\times\left( \begin{matrix} 10 \\\ 2 \end{matrix} \right)=15\times 45=675 \\)。这一方法说不上很高效,但思路很简单。之后生成表格的步骤则是完全一样的。 <h2 id="thread">代码的思路</h2> 我是用Fortran写的这个程序。下面主要介绍代码的思路。 源代码和程序的下载:#{r=278326} 首先以\\(d\\)轨道的同科电子组态为例。 d轨道共有10个自旋轨道,所以声明了两个含有10个元素的数组分别储存各自旋轨道的磁量子数和自旋磁量子数。 电子数是由用户输入的,然后依次列举所有的自旋轨道的组合并计算 \\(M_L\\)和 \\(M_S\\)并分别储存在两个数组中。这里需要注意,由于电子数并非事先写在程序中,所以列举组合的部分无法直接使用嵌套的循环来做到。这里使用的是一个利用递归的子程序来实现的。 然后统计 \\(M_L\\)和 \\(M_S\\)的取值各有多少种,并生成两个数组分别储存这些值(按由大到小的顺序依次储存)。 例如:120种组合的 \\(M_L\\)依次为(5, 3, 2, 3, -1, 5, 4, -2,...),而之后的那个数组为(5, 4, 3, 2,...,-4, -5)这11个值。 我们将前一个数组中的120个值与后一个数组进行比较,记录各个值出现的次数,便能够生成之前那个表中的数据。 对于具有不同角量子数的轨道的组态来说,则是分别将各个轨道上的组合再一次组合一次。 运行示例: #{r=278322} 关于直接输出光谱项的功能的实现 由于直接对输出的表格进行操作很麻烦,而且也不必要(因为对整个表格操作需要的循环实现困难,而且表无论是行还是列都是对称的)。所以为了实现该功能,我首先取原有的表格的左上部分单独存为一个如图所示的二维数组。 #{r=278324} 之后检查第一行各列的数字 \\(n\\),若为零,则跳过;若非零,则根据其对应的总角量子数 \\(L\\)和总自旋角量子数 \\(S\\)得到其光谱项(若不为1,输出的光谱项后会有类似<code>&#60;n&#62;</code>的标记,表明该光谱项的数目为 \\(n\\)),之后的各行与各列都减去 \\(n\\)。一行结束后,进入下一行,重复以上的步骤。(没看明白的话,可以按照第一节的例子跟着手算一下) 最终得到的结果是 <img alt="278323" src="/r/278323" width="500px"> <h2 id="references">参考文献</h2> 1. _Journal of Chemical Education_, 52(2), __1975__:87-89 2. 大学化学, 29(2), __2014__:44-46
X
4 个月前
首先鼓励楼主发帖,但有一些存在的问题我必须讲一讲。(原文献没有看(其实我手头也有一篇计算pKa的综述,不过我也没有看)) 我个人觉得使用DFT方法计算应该算“从头算”,半经验这种说法感觉不太合适。 本质上来讲,计算pKa就是要得到电离过程的准确的Gibbs自由能变。因此应当选择足够准确的理论水平进行计算。 楼主使用的泛函B3LYP应该没太大问题(不过计算有机物热力学量更推荐使用M06-2X),但是基组的使用很不合适。6-31+G这个基组没有极化函数,很不可取。通常而言,基组中的极化函数是不能缺少的,而弥散函数则在几何优化及频率计算时可以不加。为了得到准确的热力学量,还应当在高理论水平下计算单点能(你的文中提到没有算氢离子是因为该物种无电子,所以没有电子能,热力学校正部分只存在平动能\\(3/2 RT\\))。 所以我建议的计算的理论水平是,在M062X/defSVP水平下优化和频率分析(使用相应的校正因子),在B2PLYP-D3/def2TZVP水平下计算单点能(如果计算资源吃紧,那就用M062X/def2TZVP)。 关于溶剂模型,目前比较推荐使用SMD模型。而IEFPCM比Gaussian默认的PCM模型还差,尽量别用吧23333 其实我想说的是,很多文献使用的计算方法并不一定合理。除非是一定要重复文献,自己动手算的时候可以自己考虑一下有没有更合理的理论方法。 前面提到的那个综述是doi: 10.1002/wcms.1218,有兴趣可以看一看。
Re
4 个月前
首先鼓励楼主发帖,但有一些存在的问题我必须讲一讲。(原文献没有看(其实我手头也有一篇计算pKa的综述,不过我也没有看)) 我个人觉得使用DFT方法计算应该算“从头算”,半经验这种说法感觉不太合适。 本质上来讲,计算pKa就是要得到电离过程的准确的Gibbs自由能变。因此应当选择足够准确的理论水平进行计算。 楼主使用的泛函B3LYP应该没太大问题(不过计算有机物热力学量更推荐使用M06-2X),但是基组的使用很不合适。6-31+G这个基组没有极化函数,很不可取。通常而言,基组中的极化函数是不能缺少的,而弥散函数则在几何优化及频率计算时可以不加。为了得到准确的热力学量,还应当在高理论水平下计算单点能(你的文中提到没有算氢离子是因为该物种无电子,所以没有电子能,热力学校正部分只存在平动能\\(3/2 RT\\))。 所以我建议的计算的理论水平是,在M062X/defSVP水平下优化和频率分析(使用相应的校正因子),在B2PLYP-D3/def2TZVP水平下计算单点能(如果计算资源吃紧,那就用M062X/def2TZVP)。 关于溶剂模型,目前比较推荐使用SMD模型。而IEFPCM比Gaussian默认的PCM模型还差,尽量别用吧23333 其实我想说的是,很多文献使用的计算方法并不一定合理。除非是一定要重复文献,自己动手算的时候可以自己考虑一下有没有更合理的理论方法。 前面提到的那个综述是doi: 10.1002/wcms.1218,有兴趣可以看一看。
Re
8 个月前
我也测试了一下。分别使用B3LYP/6-31G\*\*和M06-2X/def2TZVP进行几何优化并计算5-氨基四唑的密度。结果如下: B3LYP/6-31G\*\* <blockquote>Volume: 630.00144 Bohr^3 ( 93.35660 Angstrom^3)</br> Estimated density according to mass and volume: 1.5131 g/cm^3</br> Minimal value: -36.60195 kcal/mol Maximal value: 54.97392 kcal/mol</br> Overall surface area: 387.10628 Bohr^2 ( 108.40082 Angstrom^2)</br> Positive surface area: 173.08492 Bohr^2 ( 48.46872 Angstrom^2)</br> Negative surface area: 214.02137 Bohr^2 ( 59.93210 Angstrom^2)</br> Overall average value: 0.00029148 a.u. ( 0.18291 kcal/mol)</br> Positive average value: 0.03376935 a.u. ( 21.19061 kcal/mol)</br> Negative average value: -0.02678298 a.u. ( -16.80659 kcal/mol)</br> Overall variance (sigma^2_tot): 0.00075443 a.u.^2 ( 297.06915 (kcal/mol)^2)</br> Positive variance: 0.00052564 a.u.^2 ( 206.98141 (kcal/mol)^2)</br> Negative variance: 0.00022878 a.u.^2 ( 90.08774 (kcal/mol)^2)</br> Balance of charges (miu): 0.21129146</br> Product of sigma^2_tot and miu: 0.00015940 a.u.^2 ( 62.76817 (kcal/mol)^2)</br> Internal charge separation (Pi): 0.02993833 a.u. ( 18.78660 kcal/mol) </blockquote> 0.9138\*1.5131+0.0028*62.76817+0.0443=1.603 M06-2X/TZVP > Volume: 639.89024 Bohr^3 ( 94.82197 Angstrom^3)</br> Estimated density according to mass and volume: 1.4897 g/cm^3</br> Minimal value: -36.45772 kcal/mol Maximal value: 58.45159 kcal/mol</br> Overall surface area: 392.17047 Bohr^2 ( 109.81893 Angstrom^2)</br> Positive surface area: 184.59652 Bohr^2 ( 51.69230 Angstrom^2)</br> Negative surface area: 207.57395 Bohr^2 ( 58.12663 Angstrom^2)</br> Overall average value: 0.00158584 a.u. ( 0.99513 kcal/mol)</br> Positive average value: 0.03332935 a.u. ( 20.91450 kcal/mol)</br> Negative average value: -0.02664382 a.u. ( -16.71926 kcal/mol)</br> Overall variance (sigma^2_tot): 0.00078132 a.u.^2 ( 307.66095 (kcal/mol)^2)</br> Positive variance: 0.00056427 a.u.^2 ( 222.19344 (kcal/mol)^2)</br> Negative variance: 0.00021705 a.u.^2 ( 85.46751 (kcal/mol)^2)</br> Balance of charges (miu): 0.20062615</br> Product of sigma^2_tot and miu: 0.00015675 a.u.^2 ( 61.72483 (kcal/mol)^2)</br> Internal charge separation (Pi): 0.02990414 a.u. ( 18.76514 kcal/mol) 0.9138\*1.4897+0.0028*61.72483+0.0443=1.578 两个结果与实验值的差别不是很大。我在想是不是楼主在计算的时候出了什么纰漏…… P.S. 英文维基上查到的5-氨基四唑的密度是1.502 g/cm^3……
加载更多

nkc Development Server https://github.com/lovetheory/nkc2

科创研究院 (c)2005-2016

蜀ICP备11004945号-2 川公网安备51010802000058号