5,392
社区成员
程序:
#!perl
use strict;
use Getopt::Long;
use MaterialsScript qw(:all);
#Edited by HUASUAN-YANG, contact Wechat ID "Nininncole" to learn more
my $hex="63726561746564206279204855415355414e2d59414e472c207468697320697320612070617274206f66204855415355414e204d6174657269616c732053747564696f20747261696e696e6720636f75727365732e20506c6561736520636f6e746163742057656368617420494420274e696e696e6e636f6c652720666f72206d6f726520696e666f726d6174696f6e2e";
my $str = pack('H*', $hex);
print "$str \n";
my $doc=$Documents{"Layer.xsd"};
my $field = $doc->AsymmetricUnit->Fields("CASTEP SCF local potential"); # or "CASTEP density difference from atoms"
my $fieldProbe = $field->CreateFieldProbe([ProbeMode => "NearestGridPoint"]);
my $xExtent = $field->GridExtent1;# - $insideField;
my $yExtent = $field->GridExtent2;# - $insideField;
my $zExtent = $field->GridExtent3;# - $insideField;
for (my $z=0; $z<$zExtent; ++$z) {
my $coorz = $z*$doc->SymmetryDefinition->LengthC/$zExtent;
my $xyfieldtotal = 0;
for (my $y=0; $y<$yExtent; ++$y) {
for (my $x=0; $x<$xExtent; ++$x) {
$fieldProbe->ProbeVoxelPosition = Point(X => $x, Y => $y, Z => $z);
#print $fieldProbe->FieldValue;
$xyfieldtotal = $xyfieldtotal + $fieldProbe->FieldValue;
}
}
my $ave=$xyfieldtotal/$xExtent/$yExtent;
print "$coorz $ave\n"
}
$fieldProbe->HasFieldLock = "No";
运行结果:
The index value is invalid (function/property "Fields") at -e line 13.
怎么发到DELPHI区了