Processing¶
Data processing¶
-
moldyn.processing.data_proc.
PDF
(pos, nb_samples, rcut, bin_count)[source]¶ Pair Distribution Function. Returns normalized histogram of distance between atoms.
Parameters: - pos (np.array) – Array containing atoms position
- nb_samples (int) – Number of atoms from which to generate the histogram
- rcut (number) – Maximum distance to consider
- bin_count (int) – Number of bins of the histogram
Returns: bins, hist – bins being the distances, hist the normalized (regarding radius) histogram
Return type: tuple(np.array, np.array)
-
moldyn.processing.data_proc.
cached
(f, _cache={<function PDF>: <sphinx.ext.autodoc.importer._MockObject object>, <function density>: <sphinx.ext.autodoc.importer._MockObject object>, <function compute_strain>: <sphinx.ext.autodoc.importer._MockObject object>})[source]¶ Parameters: f –
-
moldyn.processing.data_proc.
compute_strain
(model0, model1, rcut)[source]¶ Compute the local deformation tensor for each atom.
It will try to use GPU but will fallback on CPU if not available
Parameters: - model0 (simulation.builder.Model) – The model at time t
- model1 (simulation.builder.Model) – The model at time t-dt
- rcut (float) –
Returns: - A vector containing the 2D deformation tensor of each atom
- (in the order of model.pos).
Note
Due to numerical calculation imprecision the deformation tensor may not be quantitatively accurate (or even symmetrical).
-
moldyn.processing.data_proc.
density
(model, refinement=0)[source]¶ Create a Voronoi mesh and calculate the local particle density on its vertices.
The local density is calculated as follows: for each vertex, compute the density of each neighbour region as one over the area and assign the average of the neighbouring density to the vertex.
Parameters: - model (simulation.builder.Model) – the Model object containing
- refinement (int (defaults : 0)) – number of subdivision for refining the mesh (0 == None)
Returns: - tri (matplotlib.tri.Triangulation) – the triangulation mesh (refined if set as)
- vert_density (numpy.array) – the array containing the local denstity associated with the tri mesh
Example
To plot the result using matplotlib use :
import matplotlib.pyplot as plt tri, density = data_proc.density(model) plt.tricontour(tri, density) # to draw contours plt.tricontourf(tri, density) # ot draw filled contours plt.show()
Note
As of now, the numerical results may not be quantitatively accurate but should qualitatively represent the density.
Visualization¶
-
moldyn.processing.visualisation.
make_movie
(simulation, dynstate, name, pfilm=5, fps=24, callback=None)[source]¶ Makes a .mp4 movie of simulation from the history saved in dynstate.
Parameters: - simulation (Simulation) – The simulation object
- dynstate (DynState) – The dynState object containing the position history file.
- name (str) – The path (and name) of the file to be writen.
- pfilm (int) – To make the movie, takes every pfilm position.
- fps (int) – The number of frame per seconds of the film.
- callback (function) – An optional callback function that is called every time a frame is made and is passed the current iteration number.
-
moldyn.processing.visualisation.
plot_density
(model, levels=None, refinement=0)[source]¶ Compute and plot the contours of the local density of model.
Parameters: - model (Model) – The model to plot
- levels (int or array-like) – the number of levels or a sorted array-like object of levels
- refinement (int) – the level of refinement
-
moldyn.processing.visualisation.
plot_density_surf
(model, refinement=0)[source]¶ Compute and plot the 3D surface of the local density of model.
Parameters: - model (Model) – The model to plot.
- refinement (int) – the level of refinement
-
moldyn.processing.visualisation.
plot_densityf
(model, levels=None, refinement=0)[source]¶ Compute and plot the filled contours of the local density of model.
Parameters: - model (Model) – The model to plot
- levels (int or array-like) – the number of levels or a sorted array-like object of levels
- refinement (int) – the level of refinement