微观相结构的自动识别

微观相结构的自动识别

上次我们提到利用浓度数据的极值点进行相结构的识别,但是这样会遇到几个问题:首先,对于较为复杂的相极值点的数目相当多,同时不同嵌段比例以及支链的不同都会使各个相区的形状和大小发生变化,从而使极值点的位置和数目发生变化,给识别带来极大的困难;其次,如果浓度数据并不是按我们初始化的浓度进行排列的,而是进行了一定的平移或旋转变换,即相位的变化,这样极值点的位置也将发生变化,并且平移或旋转矩阵很难确定,因此又让这种识别方法变得几乎不可能。 考虑到微观相结构的周期性,利用傅里叶变换可以剔除掉相位的变化,从而将不同空间相位的浓度数据简化为傅里叶空间内单一的周期数据。实际上,对浓度的傅里叶变换等价于散射光的振幅。 因此类似于实验中的X射线衍射的方法可以利用傅里叶变换得到不同的衍射花纹,来确定微观相结构。但在傅里叶变换过程中,三维的傅里叶变化计算量很大,为了加快计算,因此我考虑对三维的晶胞进行三个方向的切片处理,得到三个二维的浓度矩阵,再做二维的离散傅里叶变换得到衍射图案。 在衍射图案中,在(0,0)主峰的周围,对于不同的相结构会出现不同的衍射图案,并且衍射图案是与微观相结构的对称性有关的,因此利用主峰周围其他峰的位置可以很清晰地判断微观相结构。以下为几个微观相结构A组分的衍射图案,为了简便只截取衍射图案的1/4: σ相 BCC Gyroid FCC A15 csHelix 在这里为了识别的简便化,因此降低傅里叶空间矩阵的大小,即在傅里叶变换时选取较小的u和v,来使花纹粗粒化,以Gyroid相为例,粗粒化之后三个面上A组分的衍射花纹分别为 除去原点位置的衍射峰,三个面上都有很明显的特征峰,可以根据这三个特征峰,即最大最小值的位置来作为这个相的特征进行判断,同时还有B和C两个组分的数据可以作为备用判断,这样就可以很方便的完成微观相行为的特征识别。最后附上一个python的简单的识别代码。 下一步希望能够找到分析衍射图案和相结构对称性的关系,以从理论上解释这种判断方法的合理性。  

一个监视服务器运行程序的脚本

一个监视服务器运行程序的脚本

SCFT的计算往往需要很长的计算时间,为了提高效率,我们希望能够在程序计算完成之后通过邮件提醒我们来进行下一步的操作。课题组的服务器虽然不能连接外网,但是可以连接复旦邮箱的服务器通过复旦学邮进行邮件的发送。 该程序每5分钟检测一次正在运行中的程序并进行比较,如果有程序跑完了就自动发送邮件提醒。 如果你不想在服务器上运行,你也可以运行本地版,利用SSH服务检测。

配置ABCDEN的运行环境

配置ABCDEN的运行环境

本为以linux系统为例,讲解ABCDEN运行环境的配置 首先下载ABCDEN的程序 http://www.birfied.com/file/SCFT.zip 解压后,首先配置运行所需的库,在cmd中运行 下载一个文件http://www.birfied.com/file/array_source.py 替换到mayavi安装目录下的sources文件夹中 然后在matlab的安装目录下运行来安装MATLAB API for Python 接着生成一个.ssh密钥以配置免密登陆,这里以linux系统为例 打开main.py 找到 替换为 在SCFT的安装目录下运行 即可开始体验外表简约而功能强大的的ABCDEN

从SCFT获得的浓度结果自动识别相的种类

从SCFT获得的浓度结果自动识别相的种类

要自动识别相的种类,首先要确定的是各个嵌段的极值点所对应的位置,以及这些位置所对应的模式。为了获得一个浓度数据中各嵌段浓度极值点的位置,首先将计算获得的浓度数据转为三维矩阵。为了降低计算量,对三维矩阵进行三个方向的经过矩阵中心(为了防止无法分辨PS相和BCC相)的切片处理,获得三个二维矩阵。在二维向量中分别找出各个嵌段浓度的极值点,将极值点的值设为1,其他点设为0,获得三个二维点云矩阵。接下来就可以对这三个点云矩阵的模式进行识别,来获得该相的种类。点云矩阵的模式识别方法仍待解决。

两种新的螺旋结构

两种新的螺旋结构

第一种结构是一种变型的双螺旋,由外层半径较大的螺旋和每层半径较小的螺旋包裹而成,相邻的大螺旋相区相互嵌套,使得螺旋之间的空隙能够被填上,基质的厚度更加均一。 另一种螺旋结构是使用Gyroid初始化的时候跑出来的,这种结构由三组分别是xyz三个方向的螺旋构成,相比于其他螺旋,这个螺旋的结构在三个方向是等价的,且互不联通。

一个计算ABCDEN体系的GUI程序

一个计算ABCDEN体系的GUI程序

用python完成了图形化计算ABCDEN体系的全套流程。 1.使用paramiko连接服务器,使用SSH服务和SFTP服务上传文件并运行; 2.可以更改嵌段比例和周期同时运行多个程序; 3.自动优化周期 4.一步获得嵌段比例范围或周期范围的自由能数据; 5.利用Mayavi或者Matlab进行密度图绘制 6.简单的SSH Shell功能

Mayavi绘制等密度曲面

Mayavi绘制等密度曲面

Mayavi是Python中一个三维数据可视化的库,可以制isosurface即等密度图。在绘制嵌段共聚物自组装的相分离结构时,最好的解决方案就是绘制不同高分子在密度为0.5(即占支配地位)的等密度曲面,即可表示该相的区域。该程序是从当前目录下读取pha.dat文件中的浓度数据进行绘制,晶胞的长宽高都取自用户界面的输入。