Skip to content

Conversation

@mike5603
Copy link
Contributor

…al Distribution to remove fortran and perform calculations using vectorization. For now, kept this code in properties_abandon. Can move into properties if you think it would be better to have there

…al Distribution to remove fortran and perform calculations using vectorization.
@matk86
Copy link
Contributor

matk86 commented Apr 14, 2016

Hi Michael,
Thanks. Could you move that to analysis.lammps.properties.py? I'm trying to collect all lammps post processing to that module. Also please describe what is being done in that function in its docstring(for sample format please see io.lammps modules).
-Kiran

@mike5603
Copy link
Contributor Author

Sure. Do you have a place for center of mass calculations or do you want me to write something for that as well? I think I have figured out a fairly quick way of doing it without using fortran

@matk86
Copy link
Contributor

matk86 commented Apr 14, 2016

I moved all lammps output parsing to io.lammps.output.py.
the 'mol_trajectory' in LammpsRun should return a numpy array with the center of mass coordinates of each molecule for each time step.

@mike5603
Copy link
Contributor Author

I am thinking of splitting this up into multiple functions. One of which will be calculating the distances between molecules for given timesteps. Two things we should discuss is

  1. where should we put this function. It is similar to calculating the COM positions, but will not have to be done when parsing the input files. Thus it could go in either properties or output.
  2. would we like to store this information or perform the calculations on the fly. If we decide to store them, the result would be an array of dimensions (N,N,timesteps) where N is the number of molecules

@matk86
Copy link
Contributor

matk86 commented Apr 15, 2016

I prefer to limit the functionalities of the io.lammps.output.py module to just the basics like the trajectory info as an array, masses/atomic makeup of each molecule. These info are used in the anlaysis.lammsp.properties.py to compute the properties that require more involved processing than just output file parsing for example, conductivity, radial distribution function etc..

It seems like what you are proposing would fit into the properties.py module.You can use the mol_trajectory property from the output.py module to compute the distance between the molecules. The idea is that in the analysis.lammps package we shouldnt be parsing any files.

@shyuep
Copy link
Member

shyuep commented Apr 15, 2016

I would suggest we have a unified trajectory storage. There is already one in pymatgen.analysis.diffusion_analyzer. Also, my group has done things like the self and distinct part of the van Hove correlation function in pymatgen-diffusion add-on. A special case of the van hove is essentially the RDF.

@matk86
Copy link
Contributor

matk86 commented Apr 15, 2016

Thanks shyue. I will look into interfacing with the diffusion_analyzer

@matk86
Copy link
Contributor

matk86 commented Apr 17, 2016

@mike5603 I have added the interface to pymatgen.analysis.diffusion_analyzer, see rubicon.io.lammsp.output.py and rubicon.analysis.lammps.properties.py.
This can be coupled with https://github.com/materialsvirtuallab/pymatgen-diffusion, package(by Shyues's group) to compute radial distribution etc. See the example notebooks in that package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants