The temperature and potential energy

The first and most straightforward method for output from LAMMPS is the log.lammps file, generated automatically when lammps is executed. If the execution results in an error, this file will be the output by which one can read the errors. To follow the temperature and the potential energy using this file, the following code should be entered into the script:

thermo 100
thermo_style custom temp pe

This code enables us to get the output of the temperature and the potential energy once every 100 time steps. For example, we can see that in our NVT ensamble, setting the temperature after the minimization process results in a thermalization process at which the temperature first jumps, but rapisly drops to the desired 300K. This is caused due to the fact that we "switch on" the temperature immedietly. Following the temperature is a good monitor to check if our simulation converges. If the temperature is not converging then we can say that the model is problematic, or that we have some problem with the simulation. The fact that we get a quick convergence is an indication that we have a good model.

Fig 1. Temperature Convergence
Fig 1. The Temperature Convergence Graph

The Stresses

The stress is calculated using the command: compute q2 all stress/atom virial
This command will calculate the virial stress average of the lattice. The output of the stress calculation is given by the dump command, which enables to export different files as output of the simulation. Here the files are exported once every 1000 steps. The files are generated using the command: dump q2 all custom 1000 NVTs.*.stress c_q2[1] c_q2[2] c_q2[3] where the c_q2 elements are matric elements of the symmetric stress tensor.

The stress results were inserted into excel file and averaged over the time. Then, each of the averages taken in each simulation was compared to the stress which was found in the complete lattice simulation. The final results were very noisy and it is recommended that a much larger volume of material would be taken in order to get accurate results. The following summary of the tresnds is presented here:

Let us note here that the base stress was found to be a slight tensile stress in the x-y direction and a slight compressive stress in the z-direction.

  1. Nitrogen vacancy - Caused the stress to becomd high tensile stress in the x-y directions, ranging up to 3 times the absolute value of the average stress found in the complete lattice. In the z-driection, however it had little to no effect.
  2. Silicon vacancy - Caused the stress to become slightly tensile, giving a 25% of the absolute value in the x-y direction. In the z-direction it had little to no effect.
  3. Hydrogen inclusion - In here the z-direction had large compressive stresses, where the x-y directions had about 30% of the absolute value of the the stress found in the complete lattice.

The Lattice visualization

The visualization was performed by Aviz. This program runs both on tamnun and phelafel, so one may export the outputs to the phelafel in order to work with the Aviz program.
Creating an XYZ file for the Aviz is performe by the commands:
dump q3 all xyz 1000 NVT.*.xyz
dump_modify q3 elelemnt N Si

From here one may create .png files, or to convert a series of .png files to animated .gif files. Examples of animation is found here below:

Figure 1
Fig 2. A Silicon nitride lattice.

Figure 5

Fig 3. NVT (canonical) ensamble simulation of (Si3N4)0.9974H0.0026.

Back to The Project Proposal

Back to my homepage

Back to the Computational Physics Class index page