|
|
创腾公开课中有个perl讲解,提到了逐步升温的做法,你可以参考一下
- #!perl
- use strict;
- use Getopt::Long;
- use MaterialsScript qw(:all);
- my $finalStructure;
- my $doc;
- my $allsteps = 3000;
- my $Frequency = 1000;
- my $timestep = 1;
- my $j=0;
- for (my $i=0; $i<= 2; ++$i)
- {
- $j=$j+1;
- my $temperature=50+$i*30;
- $doc=$Documents{"$i.xsd"};
- #########################################
- #########################################dynamics
- #########################################
- my $results = Modules->Forcite->Dynamics->Run($doc, Settings(
- Quality => 'Fine',
- CurrentForcefield => 'cvff',
- Ensemble3D => 'NPT',
- Temperature => $temperature,
- Pressure => 0.06,
- NumberOfSteps => $allsteps,
- TimeStep => $timestep,
- TrajectoryFrequency => $Frequency,
- Thermostat => 'Nose',
- EnergyDeviation => 5e+008,
- InitialVelocities => 'Current',
- StressXX => -0.06,
- StressYY => -0.06,
- StressZZ => -0.06));
-
- my $trajactory=$results->Trajectory;
- $finalStructure=$results->Structure;
- #########################################
- #########################################analysis
- #########################################
- my $results = Modules->Forcite->Analysis->MeanSquareDisplacement($trajactory, Settings(
- # ActiveDocumentFrameRange => 2-5,
- MSDSetA => 'C'));
- my $outTable = $results->MSDChartAsStudyTable;
- $finalStructure->Saveas("$j.xsd");
- $trajactory->Saveas("$i-$temperature.xtd");
- $Documents{"$i Energies.xcd"}->Delete;
- $Documents{"$i Temperature.xcd"}->Delete;
- $Documents{"$i.xsd"}->Delete;
- $Documents{"$i.xtd"}->Delete;
- $Documents{"$i.txt"}->Delete;
- #$Documents{"Status.txt"}->Delete;
- $Documents{"$i Cell.xcd"}->Delete;
- $Documents{"$i Density.xcd"}->Delete;
- $outTable->Saveas("$i-$temperature-Forcite MSD.std");
- $Documents{"$i Forcite MSD.xcd"}->Delete;
- $Documents{"$i Forcite MSD.std"}->Delete;
- #$doc=$finalStructure;
- }
复制代码 |
|