Source code for pyretis.analysis.order_analysis
# -*- coding: utf-8 -*-
# Copyright (c) 2023, PyRETIS Development Team.
# Distributed under the LGPLv2.1+ License. See LICENSE for more info.
"""Module defining functions for analysis of order parameters.
Important methods defined here
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
analyse_orderp (:py:func:`.analyse_orderp`)
Run a simple order parameter analysis.
"""
from pyretis.analysis.analysis import analyse_data, mean_square_displacement
__all__ = ['analyse_orderp']
[docs]def analyse_orderp(orderdata, settings):
"""Run the analysis on several order parameters.
The results are collected into a structure which is convenient for
plotting.
Parameters
----------
orderdata : numpy.arrays
The data read from the order parameter file.
settings : dict
This dictionary contains settings for the analysis.
Returns
-------
results : numpy.array
For each order parameter `key`, `results[key]` contains the
result of the analysis.
See Also
--------
`analyse_data` in `pyretis.analysis.analysis.py`
Note
----
We here (and in the plotting routines) make certain assumptions
about the structure, i.e. the positions are assumed to have a
specific meaning: column zero is the time, column one the order
parameter and so on.
"""
results = []
_, col = orderdata.shape
for i in range(col):
if i == 0: # first column is just the time, skip it
pass
else:
result = analyse_data(orderdata[:, i], settings)
if i == 1: # assume that we want the MSD analysis here:
ndt = settings['analysis']['maxordermsd']
result['msd'] = mean_square_displacement(
orderdata[:, i],
ndt=ndt
)
results.append(result)
return results