计算化学公社

 找回密码 Forget password
 注册 Register
Views: 1602|回复 Reply: 2
打印 Print 上一主题 Last thread 下一主题 Next thread

[Material Studio] Forcite中运行一个高熵合金建模脚本时报错

[复制链接 Copy URL]

2

帖子

0

威望

19

eV
积分
21

Level 1 能力者

新手参考了一下别人用自制脚本构建高尚氧化物模型,想要尝试构建自己的高熵合金模型
参考链接:https://www.bilibili.com/video/B ... 00bd2e672534043d45b


以下为本人根据自身需要更改后的脚本:
#!perl

use strict;
use Getopt::Long;
use MaterialsScript qw(:all);
use List::Util qw(shuffle);
use POSIX;

my $doc = $Documents{"Ni.xsd"};
$doc->BuildSuperCell(10, 10, 10);

my $table = Documents->New("structure.std");
$table->ColumnHeading(0) = "Structure";
$table->ColumnHeading(1) = "energy";

for(my $i=1;$i<=20;$i++)
{
my $alloy = Documents->New("alloy.xsd");
$alloy -> CopyFrom($doc);

my $atoms = $alloy->UnitCell->Atoms;

my @shuffle = shuffle(@$atoms);
   for(my $j=1;$j<=800;$j++)
   {
   my $changeatom = shift(@shuffle);
   $changeatom -> ElementSymbol = "Co";
   };
   for(my $k=1;$k<=800;$k++)
   {
   my $changeatom = shift(@shuffle);
   $changeatom -> ElementSymbol = "Cr";
   };
   for(my $l=1;$l<=800;$l++)
   {
   my $changeatom = shift(@shuffle);
   $changeatom -> ElementSymbol = "Fe";
   };
   for(my $m=1;$m<=800;$m++)
   {
   my $changeatom = shift(@shuffle);
   $changeatom -> ElementSymbol = "Sb";
   };
my $results = Modules->Forcite->GeometryOptimization->Run($alloy, Settings(
        '3DPeriodicElectrostaticSummationMethod' => 'Ewald',
        '3DPeriodicvdWEwaldSumAccuracy' => 0.0001,
        '3DPeriodicElectrostaticEwaldSumAccuracy' => 0.0001,
        '3DPeriodicvdWAtomCubicSplineCutOff' => 15.5,
        '3DPeriodicvdWChargeGroupCubicSplineCutOff' => 15.5,
        CurrentForcefield => 'Universal',
        ChargeAssignment => 'Charge using QEq',
        UseMaxDisplacement => 'No',
        KeepMotionGroupsRigid => 'No'));

my $results = Modules->Forcite->Analysis->RadialDistributionFunction($doc, Settings());
my $outRDFChart = $results->RDFChart;
my $outRDFChartAsStudyTable = $results->RDFChartAsStudyTable;

$table->Cell($i-1,0) = $results->Structure;
$table->Cell($i-1,1) = $results->Structure->PotentialEnergy;
$table->Cell($i-1,2) = $results->RDFChart;

$Documents{"alloy.xsd"}->Delete;
$Documents{"alloy Convergence.xcd"}->Delete;
$Documents{"alloy Energies.xcd"}->Delete;
$Documents{"Status.txt"}->Delete;
$Documents{"alloy.txt"}->Delete;
$Documents{"alloy Forcite RDF.std"}->Delete;
$Documents{"alloy Forcite RDF.xcd"}->Delete;
}


1.png (24.45 KB, 下载次数 Times of downloads: 5)

1.png

17

帖子

0

威望

748

eV
积分
765

Level 4 (黑子)

2#
发表于 Post on 2022-10-19 10:58:45 | 只看该作者 Only view this author
$table->Cell($i-1,0) = $results->Structure; 计算结果里没有这个Structure项,应该直接用$alloy就可以了:
$table->Cell($i-1,0) = $alloy;
$table->Cell($i-1,1) = $results->Structure->PotentialEnergy; 这句也应该是
$table->Cell($i-1,1) = $alloy->PotentialEnergy;
另外:
my $results = Modules->Forcite->Analysis->RadialDistributionFunction($doc, Settings());
这里计算RDF的不应该是$alloy嘛

2

帖子

0

威望

19

eV
积分
21

Level 1 能力者

3#
 楼主 Author| 发表于 Post on 2022-10-19 16:07:51 | 只看该作者 Only view this author
按照您的意见修改后已能够算出完整结果,非常感谢

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-24 19:11 , Processed in 0.244863 second(s), 29 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list