material studio使用perl脚本形成交联聚合物

目录

0.概述

1.MS input设置

2.perl脚本配置

3.reference


最近在研究交联聚合物,但是目前似乎并没有一个通用的建模方法。比较常见的环氧树脂交联的研究都是基于同一个人开发的脚本。于是我尝试了下在此基础上进行修改用于其他体系。

对于交联聚合物的建模,目前见得比较多的有以下两种方法:

  1. 手动跑MD,每跑一段时间人工判断是否满足成键条件,满足再手动成键,直达满足交联度[1]。但是这种方法太麻烦了,手动判断还容易出错。
  2. 使用某不知名大佬开发的ms中环氧树脂交联的脚本[2]。脚本比较成熟,使用简单,因此你搜聚合物交联相关的论文都是在做环氧树脂。脚本下载链接如下:materialstudio交联脚本-Perl文档类资源-CSDN下载原始脚本用于环氧树脂的交联,修改后可以用于其他体系。更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/weixin_51982763/87411716?spm=1001.2014.3001.5501

0.概述

脚本运行原理如下:

#   1. One-time equilibration with NVT and then NPT dynamics
#   2. Update reaction radius
#   3. Create new crosslinks (createNewXlinks)
#   4. Relax with optimization and dynamics
#   5. Open epoxy rings (optional)
#   6. Delete condensates (optional)
#   7. Adjust hydrogens
#   8. Recalculate charge groups (optional)
#   9. Anneal xlinked structure using temperature cycle (optional)
#  10. Write xlink data to study tables
#  11. Repeat steps 2-10 until target conversion or max cutoff is reached

大体上和之前提到的方法1差不多,只是采用了脚本自动执行。

1.MS input设置

以戊二醛交联聚乙烯醇为例。

0.首先绘制交联剂(戊二醛)分子,删除交联反应中会脱去的O原子。其实脚本中是带有交联删除原子的功能的,但只使用于环氧树脂交联,咱也不会改,就从input模型入手了。

material studio使用perl脚本形成交联聚合物_第1张图片

1.将用于成键的原子改名为R2。

material studio使用perl脚本形成交联聚合物_第2张图片

 3.同样的方法处理聚合物(聚乙二醇)分子,将成键原子命名为R1。

material studio使用perl脚本形成交联聚合物_第3张图片

4.将处理后的聚合物和交联剂用AC模块构建无定型晶胞。力场选用universal通用力场。因为我们手动删除了键用compass,cvff等可能会出错。 

material studio使用perl脚本形成交联聚合物_第4张图片

2.perl脚本配置

这里只说下脚本 中需要注意修改的地方。

0.文件名,聚合物单体名配置与ms中一致

my $xsdDocName				= "MIX";	# AC模块构建的晶胞名。
my $oligomerName 			= "Polypva";# 聚合物名
my $oligomerReactiveAtom 		= "R1";	# 聚合物交联原子
my $xlinkerName 			= "CHO";	# 交联剂名
my $xlinkerReactiveAtom 		= "R2";	#交联剂交联原子

 1.R1/R2原子能否与多个原子交联

my $react_multi_oligomer		= FALSE;
my $react_multi_xlinker			= TRUE;

2.forcite力场改为universal(因为手动删了原子compass不识别) 

my $forcefield		 	= "universal";

 3.修改Hcount函数

sub OCount
{
	my $atom = shift;
	my $n = 0;
	foreach (@{$atom->AttachedAtoms})
	{
		$n++ if ($_->ElementSymbol eq "O");#将H修改为R1原子。
	}
	return $n;
}

 4.修改R2反应活性判断条件

sub isReactiveR2
{
	my $atom = shift;
	my $name = $atom->Name;
	if ($name =~ /^$xlinkerReactiveAtom/)
	{
		return TRUE if ($name eq "$xlinkerReactiveAtom");
		return TRUE if ($react_multi_xlinker and Ocount($atom) < 2);#一个R2最多交联两个O
	}
	return FALSE;
}

3.运行脚本
运行脚本后输出文件中戊二醛与聚乙烯醇产生了交联结构:

material studio使用perl脚本形成交联聚合物_第5张图片


3.reference

[1]张梦赟, 王荣华, 林也平,等. 交联氟硅橡胶玻璃化转变温度及力学性能的分子动力学模拟[J]. 高分子材料科学与工程, 2015, 31(4):68-72.

[2] https://community.3dsbiovia.com/Communities_Topics?tid=09a500000004QfAAAU&name=Materials+Studio&id=90650000000L6AiAAK

[3]Shokuhfar A, Arab B. The effect of cross linking density on the mechanical properties and structure of the epoxy polymers: molecular dynamics simulation[J]. Journal of molecular modeling, 2013, 19: 3719-3731.

你可能感兴趣的:(lammps,分子动力学,python,perl)