loop — A description of how to move a particle set.
loop ::= (record*)
The loop element contains information how to perform simulations and what to record during a loop.
A loop consists of blocks of steps.
Optional, the number of blocks to move the particle set. Default= 1.
Optional, the number of steps to move the particle set within a block. Default= 1.
Optional, ( inbox | none ). If "inbox", the particle attributes associated with the position of the particles are corrected by the boundary conditions so that the current position is within the unitcell, after a block is completed.
The list of parameters meaningful to loop.
| name | condition | datatype | result |
|---|---|---|---|
| temperature | K | scalar | Rescale or initialize the temperature of a particle set to the value. |
| anneal | K | scalar | A temperature differential used to lower the temperature after each block. Only positive value is accepted. Otherwise, ignored. |
Each loop can contain a group of <record>s which are valid only within the current loop. Multiple loop's can share a group of records, if <record>s are declared outside of the <loop>.
This example shows how to propagate the particle set for 10x1000 steps. The ensemble is "evn" and the initial temperature is set to 1000 K. At every 10 step, the ensemble properties are recorded.
<mdsim>
<potential name="MEAM">
<parameter name="file">MEAMPOT.Si</parameter>
</potential>
<ensemble name="evn">
<parameter name="temperature" condition="K">1000</parameter>
<parameter name="timestep" condition="fsec">1.1</parameter>
</ensemble>
<loop blocks="10" steps="1000">
<record name="ensemble" stride="10" /> <!-- within a loop -->
<loop/>
</mdsim>
This example shows how to rescale the velocity of the particle set every 1000 timesteps. This is a typical procedure to heat a system starting from the zero-temperature ground structure. Note that <record> is at the same level as <loop>s.
<mdsim>
<potential name="MEAM">
<parameter name="file">MEAMPOT.Si</parameter>
</potential>
<ensemble name="evn">
<parameter name="timestep" condition="fsec">1.1</parameter>
</ensemble>
<record name="ensemble" stride="10" /> <!-- outside loops -->
<loop blocks="1" steps="1000">
<parameter name="temperature" condition="K">1000</parameter>
</loop>
<loop blocks="1" steps="1000">
<parameter name="temperature" condition="K">1000</parameter>
</loop>
<loop blocks="1" steps="1000">
<parameter name="temperature" condition="K">1000</parameter>
</loop>
<loop blocks="1" steps="1000">
<parameter name="temperature" condition="K">1000</parameter>
</loop>
</mdsim>