pylj.comp¶
These are the COMPutationally intensive, COMPiled (by cython) functions. Generally these are functions required by pylj which involve a pair-wise comparison of particles. These are written in C++, the source of which can be found in the src/comp.cpp file.
-
pylj.comp.
calculate_pressure
()¶ Calculates the instantaneous pressure of the simulation cell, found with the following relationship:
\[p = \langle \rho k_b T \rangle + \bigg\langle \frac{1}{3V}\sum_{i}\sum_{j<i} \mathbf{r}_{ij}\mathbf{f}_{ij} \bigg\rangle\]Parameters: - particles (util.particle_dt, array_like) – Information about the particles.
- box_length (float) – Length of a single dimension of the simulation square, in Angstrom.
- temperature (float) – Instantaneous temperature of the simulation.
- cut_off (float) – The distance greater than which the forces between particles is taken as zero.
- constants (float, array_like (optional)) – The constants associated with the particular forcefield used, e.g. for the function forcefields.lennard_jones, theses are [A, B].
Returns: Instantaneous pressure of the simulation.
Return type: float
-
pylj.comp.
compute_energy
()¶ Calculates the total energy of the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values:
- A = 1.363e-134 J m \(^{12}\)
- B = 9.273e-78 J m \(^6\)
Parameters: - particles (util.particle_dt, array_like) – Information about the particles.
- box_length (float) – Length of a single dimension of the simulation square, in Angstrom.
- cut_off (float) – The distance greater than which the energies between particles is taken as zero.
- constants (float, array_like (optional)) – The constants associated with the particular forcefield used, e.g. for the function forcefields.lennard_jones, theses are [A, B].
Returns: - util.particle_dt, array_like – Information about particles, with updated accelerations and forces.
- float, array_like – Current distances between pairs of particles in the simulation.
- float, array_like – Current energies between pairs of particles in the simulation.
-
pylj.comp.
compute_force
()¶ Calculates the forces and therefore the accelerations on each of the particles in the simulation. This uses a 12-6 Lennard-Jones potential model for Argon with values:
- A = 1.363e-134 J m \(^{12}\)
- B = 9.273e-78 J m \(^6\)
Parameters: - particles (util.particle_dt, array_like) – Information about the particles.
- box_length (float) – Length of a single dimension of the simulation square, in Angstrom.
- cut_off (float) – The distance greater than which the forces between particles is taken as zero.
- constants (float, array_like (optional)) – The constants associated with the particular forcefield used, e.g. for the function forcefields.lennard_jones, theses are [A, B].
- mass (float (optional)) – The mass of the particle being simulated (units of atomic mass units).
Returns: - util.particle_dt, array_like – Information about particles, with updated accelerations and forces.
- float, array_like – Current distances between pairs of particles in the simulation.
- float, array_like – Current forces between pairs of particles in the simulation.
- float, array_like – Current energies between pairs of particles in the simulation.
-
pylj.comp.
dist
()¶ Returns the distance array for the set of particles.
Parameters: - xpos (float, array_like (N)) – Array of length N, where N is the number of particles, providing the x-dimension positions of the particles.
- ypos (float, array_like (N)) – Array of length N, where N is the number of particles, providing the y-dimension positions of the particles.
- box_length (float) – The box length of the simulation cell.
Returns: - distances float, array_like ((N - 1) * N / 2)) – The pairs of distances between the particles.
- xdistances float, array_like ((N - 1) * N / 2)) – The pairs of distances between the particles, in only the x-dimension.
- ydistances float, array_like ((N - 1) * N / 2)) – The pairs of distances between the particles, in only the y-dimension.
-
pylj.comp.
heat_bath
()¶ Rescales the velocities of the particles in the system to control the temperature of the simulation. Thereby allowing for an NVT ensemble. The velocities are rescaled according the following relationship,
\[v_{\text{new}} = v_{\text{old}} \times \sqrt{\frac{T_{\text{desired}}}{\bar{T}}}\]Parameters: - particles (util.particle_dt, array_like) – Information about the particles.
- temperature_sample (float, array_like) – The temperature at each timestep in the simulation.
- bath_temp (float) – The desired temperature of the simulation.
Returns: Information about the particles with new, rescaled velocities.
Return type: util.particle_dt, array_like