semodi / sbu-ccmp-tools

Libary of utilites to analyze the ouput of electronic structure programs
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

molecular_dynamics_tools #1

Open marivifs opened 4 years ago

marivifs commented 4 years ago

MVFS, Feb 13, 2020 This issue has several parts, maybe we should open one issue for each but right now I'm doing it all in one.

1.- Read ANI files and obtain system information, including multiple frames 2.- Information about time step on the MD simulation that originated the ANI file (if it was an MD simulation) 3.- MDE file reading 4.- Phonons (maybe we open anew issue for phonons??)

semodi commented 4 years ago

I can take care about 1.-3., I think we should open a new issue for phonons. Can you give more infromation about 2., what kind of information do you need?

marivifs commented 4 years ago

I can take care about 1.-3., I think we should open a new issue for phonons. Can you give more infromation about 2., what kind of information do you need?

Yes, issue 2 is slightly complex, but it is connected to issue 1. We could just read an ANI file stand alone and have defaults for certain values. An ANI is generated for any MD type (geometry optimization, MD or phonons). For phonons or GO time step is meaningless. For ANI the time step is only on the input or output of siesta. As the time step is has only meaning for MD, and it is useless for all others, we could have a default time step of 0.5 fs. But this could always be overwritten if the reading ANI subroutine also reads the input file of the simulation. This will anyway be necessary, because we also need to read in the cell parameters. So thinking about this I think the most sensible thing to do is to always read both the ANI file and the fdf of input. What do you think? The object returned by reading an ANI file should contain the following Nsteps (not default) Nat (not default) Nspecies (not default) list of species--coordinates for each step (not default) time step (default 0.5 ps, only updated if fdf file provided) cell parameters (default cubic cell with dimension of 10% more the longest coordinate difference for example, updated if fdf is read) type of md (default MD verlet, updated to GO, phonon, MD with specific thermostat if fdf is read)

What do you think?

semodi commented 4 years ago

Sounds good! I can do that

alecpwills commented 4 years ago

I have addressed the major points of Marivi's suggestions:

As the time step is has only meaning for MD, and it is useless for all others, we could have a default time step of 0.5 fs. But this could always be overwritten if the reading ANI subroutine also reads the input file of the simulation. This will anyway be necessary, because we also need to read in the cell parameters.

From what I read in the SIESTA docs, I have coded the class to determine what type of simulation being run of the three (from a few GO options, the phonon option, and MD options) if an fdf is specified

So thinking about this I think the most sensible thing to do is to always read both the ANI file and the fdf of input

If on instantiation the fdf file is provided/marked as available, the fdf is read/searched for and a variety of default values (cell size, etc) are looked for by the sisl package.

The object returned by reading an ANI file should contain the following Nsteps (not default) Nat (not default) Nspecies (not default) list of species--coordinates for each step (not default) time step (default 0.5 ps, only updated if fdf file provided) cell parameters (default cubic cell with dimension of 10% more the longest coordinate difference for example, updated if fdf is read) type of md (default MD verlet, updated to GO, phonon, MD with specific thermostat if fdf is read)

I have set a separate method iMD to look for the ANI file if flagged as available, and it must be found to create any trajectory information. If the FDF information isn't found, the Nsteps, Nat, Nspecies are determined from the .xyz/.ANI file read in by MDAnalysis. (I forgot to generate a list of species attribute, but will do)

Reading in a trajectory without fdf assumes a timestep of 0.5 ps (the unit is default in MDAnalysis, perhaps fs were meant to be default), and cell parameters are roughly determined to be cubic with length of 1.1*(max coordinate value over the simulation minus the minimum coordinate value). If the coordinates in the trajectory aren't wrapped this will most likely greatly overestimate cell size, however. Attributes for MD type are defaulted to Verlet integration and MD simulation without the FDF file provided.

alecpwills commented 4 years ago