Input Description
==================


&control 
-------------------

This namelist is the collection of the tags that control the 
whole calculation for autocorrelation function. Currently, 
the defualt values is not internally set for control namelist. 
Therefore, every tags need to be set appropriately before using the program. 


````



* ``mode`` 
   The available calculation modes are listed in table below. 
   Currently, 4 analysis modes were implemented. 
   The addition of new mode can be done by adding new subroutine. ``CHARACTER``


   ============================== ================================================
    ``'msd'``                       **Mean square displacement (MSD)**
                                    calcation for measuring diffusion coeficient 
                                    based on Einstein relation. This program give 
                                    MSD versus time relation. The derivative 
                                    is required to be done externally to get 
                                    diffusion coeficient. 
    ``'bond_autocorrelation'``      **Bond autocorrelation function**
                                    for measuring lifetime of bond. 
                                    Only the intermittent autocorrelation was
                                    implemented in current version.
    ``'angle_autocorrelation'``     **Dihedral autocorrelation function**
                                    for measuring angle lifetime.
                                    In this subroutine,  
                                    2 diffferent functions for describing 
                                    geometry parameters were implemented, and 
                                    2 different modes for measuring angle between 
                                    planes were implemented.
    ``'dipole_autocorrelation'``    **Dipole derivative autocorrelation function** 
                                    for infrared (IR) spectra calculation. 
                                    Only autocorrelation function is calculated 
                                    in this subroutine. Fourier transform 
                                    is required to be done externally to 
                                    obtain IR spectra. 

   ============================== ================================================



````



* ``dumpfile`` 
   Trajectory file outputed from LAMMPS in dump format. 
   Currently, only interface with LAMMPS (dump) is available. ``CHARACTER``


````


* ``mdstep`` 
   Number of MD step to be read from dump file. 
   This number can not be greater than the total number of 
   snapshots contained in trajectory. One can include only MD length 
   that memory of the cpu allows. By using in combination with ``nstepskip``,
   one can trim the trajectory only the needed region. ``INTEGER``


````



* ``nstepskip`` 
   The number of MD steps to be skipped at the beginning of whole trajectory.
   This will be used to avoid the insufficient equilibration at the beginning of 
   production run. ``INTEGER``




````

* ``nbuffer`` 
   Number of buffers to be used in the autocorrelation function average. ``INTEGER``
  


````


* ``bufferinterval`` 
   The interval between time origin of each buffer. 
   This parameter is defined by the nubmer of MD step (not time unit).
   The length of each buffer will be automatically calculated from 
   (``mdstep`` - ``nstepskip``) - ``nbuffer`` * ``bufferinterval``. 
   Therefore, every parameters should be selected with care. ``INTEGER``



````



* ``dt`` 
   Time difference between neighnoring snapshots in femtosecond unit. ``REAL``


````


* ``ntype`` 
   Number of atomic types in the simulations. 
   The number must be consistent with the atomic types specified below 
   the namelist field. ``INTEGER``


````


* ``writeunwrap`` 
   The format of the unwraped coordinates. See table below. ``CHARACTER``
  

   ============ ====================================================
    ``'none'``     Do not print out the unwarped trajectory 
    ``'xsf'``      Print out unwraped trajectory in xsf format 
    ``'xyz'``      Print out unwraped trajectory in xyz format 
   ============ ====================================================


````


|
|



&msd 
-------------------


* ``groupmol``       
   For MSD mode, both ``.TRUE.`` and ``.FALSE.`` are available. ``LOGICAL``
   
   ============ ==========================================================================
    ``.TRUE.``   The calculation will be done on the groups specified under the namelist.
    ``.FALSE.``  The calculation will be done on every atoms in trajectory. 
   ============ ==========================================================================

   Default : ``.FALSE.``


````


* ``decomposemol``   
   For MSD mode, both ``.TRUE.`` and ``.FALSE.`` are available. ``LOGICAL``
   
   ============ ==========================================================================
    ``.TRUE.``   Decompose and print out every individual atoms in the output. 
    ``.FALSE.``  Do not decompose every individual atoms in the output and print out 
                 only per each atomic type.
   ============ ==========================================================================


   Default : ``.FALSE.``

````


* ``project``        
   The projection of the MSD on the specified axis. 
   An axis vector is required and must be specified
   by the starting and ending point of the vector in fraction scale. 
   For example, ``0.0 0.0 0.0 0.5 0.5 0.5``, where first 3 numbers and last 3 numbers represent 
   starting point and ending point of the vector, respectively. ``REAL``

   Default : ``0.0 0.0 0.0 1.0 0.0 0.0``

````


* ``logfile``
   The results from MSD calculation will be written to the log file. ``CHARACTER``

   Default : ``log.msd``

````



* The information under the namelist is required as shown in following example. 
  A list of atomic types, a list of number of atoms in ecah type, and
  a list of atomic mass for each atomic type are needed. 
  If ``groupmol=.TRUE.`` is specified, a number of group following by the 
  list of atomic index for each group are required. 
  ::

    &msd
        groupmol       = LOGICAL
        decomposemol   = LOGICAL
        project        = REAL REAL REAL REAL REAL REAL
        logfile        = CHARACTER
    /
    X(1) X(2) ... X(ntype)
    N(1) N(2) ... N(ntype)
    m(1) m(2) ... m(ntype)
    ngroup
    natom1 xindex(1) xindex(2) ... xindex(natom1) 
    natom2 xindex(1) xindex(2) ... xindex(natom2) 
    natom3 xindex(1) xindex(2) ... xindex(natom3) 
    ...
    natom(ngroup) xindex(1) xindex(2) ... xindex(natom3) 




|
|




&bond_correlation
-----------------------------





* ``groupmol``       
   For bond_correlation mode, only ``.FALSE.`` is allowed,  
   where all atoms in the trajectory will be read.  
   However, only 2 atomic types specified in ``bondpair`` will be 
   included, and bond correlation between those 2 atoms will be evaluated. 
   
   ============ ==========================================================================
    ``.FALSE.``  The calculation will be done on every atoms in trajectory.
   ============ ==========================================================================


````


* ``decomposemol``   
   For bond_correlation mode, only ``.FALSE.`` is allowed.



````


* ``bondpair``    
   Bonds between the first atomic type and the second atomic type 
   are considered. ``INTEGER``


````


* ``bondtreshold``
   The treshold lenght defining the bond. If distance between two atoms specified 
   by ``bondpair`` is smaller than ``bondtreshold``, :math:`h(t)=1`. If not,  
   :math:`h(t)=0`. ``REAL``


````


* ``autocorrfile``
   The bond autocorrelation function will be written in this file.  ``CHARACTER``


   Default : ``auto.bond``

````



* The information under the namelist is required as shown in following example. 
  A list of atomic types, a list of number of atoms in ecah type, and 
  a list of atomic mass for each atomic type are needed. 
  ::

    &bond_correlation
        groupmol       = .FALSE.
        decomposemol   = LOGICAL
        bondpair       = INTEGER INTEGER
        bondtreshold   = REAL
        autocorrfile   = CHARACTER
    /
    X(1) X(2) ... X(ntype)
    N(1) N(2) ... N(ntype)
    m(1) m(2) ... m(ntype)






|
|







&angle_correlation
-----------------------------

 



* ``groupmol``       
   For angle_correlation mode, only ``.TRUE.`` is allowed,  
   where the calculation will be done only with the group specified under the namelist.

   ============ ==========================================================================
    ``.TRUE.``   The calculation will be done on the groups specified under the namelist.
   ============ ==========================================================================


````


* ``decomposemol``   
   For angle_correlation mode, only ``.FALSE.`` is allowed.



````


* ``functype`` 
   The function type for evaluate the angle. Check the theory section.


   ========== =======================================================================
    ``1``      Geometry index :math:`\tau_5` 
    ``2``      Geometry index :math:`\tau_{\delta}` 
    ``3``      Angle :math:`\theta` between planes defined by normal vectors
    ``4``      Angle :math:`\varepsilon` between planes defined by parallel vectors
   ========== =======================================================================


````


* ``logfile``  
   The parameter values as a function of time will be written into log file. ``CHARACTER``     

   Default : ``log.angle``

````


* ``autocorrfile``
   The corresponding autocorrelation function will be written into this file. ``CHARACTER``     

   Default : ``auto.angle``

````


* The information under the namelist is required as shown in following example.  
  A list of atomic types, a list of number of atoms in ecah type, and 
  a list of atomic mass for each atomic type are needed. 
  The ``groupmol=.TRUE.`` is required, a number of group following by the 
  list of atomic index for each group are required. 
  ::

    &angle_correlation
        groupmol       = .TRUE.
        decomposemol   = LOGICAL
        logfile        = CHARACTER
        autocorrfile   = CHARACTER
    /
    X(1) X(2) ... X(ntype)
    N(1) N(2) ... N(ntype)
    m(1) m(2) ... m(ntype)
    ngroup
    5 R(1) A_1(1) A_2(1) B_1(1) B_2(1)
    5 R(2) A_1(2) A_2(2) B_1(2) B_2(2)
    5 R(3) A_1(3) A_2(3) B_1(3) B_2(3)
    ...
    5 R(ngroup) A_1(ngroup) A_2(ngroup) B_1(ngroup) B_2(ngroup)



|
|





&dipole_correlation
-----------------------------



* ``groupmol``       
   For dipole_correlation mode, only ``.TRUE.`` is allowed,  
   where the calculation will be done only with the group specified under the namelist.


   ============ ==========================================================================
    ``.TRUE.``   The calculation will be done on the groups specified under the namelist.
   ============ ==========================================================================


````


* ``decomposemol``   
   For dipole_correlation mode, only ``.FALSE.`` is allowed.



````



* ``dipolemode``   
   The autocorrelation function type to be evaluated 

   =============== ============================================================================
    ``direct``      Dipole autocorrelation function will be evaluated 
    ``derivative``  Dipole derivative autocorrelation function will be evaluated (recommended)
   =============== ============================================================================

   Default : ``derivative``


````


* ``logfile``  
   The dipole moment derivative as a function of time will be written into log file. ``CHARACTER``      

   Default : ``log.dipole``

````


* ``autocorrfile``
   The corresponding autocorrelation function will be written into this file. ``CHARACTER``     

   Default : ``auto.dipole``

````


* The information under the namelist is required as shown in following example. 
  A list of atomic types, a list of number of atoms in ecah type, and
  a list atomic charges for each atomic type are needed. 
  The ``groupmol=.TRUE.`` is required, a number of group following by the 
  list of atomic index for each group are required. 
  ::

    &dipole_correlation
        groupmol       = .TRUE.
        decomposemol   = LOGICAL
        dipolemode     = CHARACTER
        logfile        = CHARACTER
        autocorrfile   = CHARACTER
    /
    X(1) X(2) ... X(ntype)
    N(1) N(2) ... N(ntype)
    q(1) q(2) ... q(ntype)
    ngroup
    natom1 xindex(1) xindex(2) ... xindex(natom1) 
    natom2 xindex(1) xindex(2) ... xindex(natom2) 
    natom3 xindex(1) xindex(2) ... xindex(natom3) 
    ...
    natom(ngroup) xindex(1) xindex(2) ... xindex(natom3) 


   

|
|



&velocity_correlation
-----------------------------



* ``groupmol``       
   For velocity_correlation mode, only ``.TRUE.`` is allowed,  
   where the calculation will be done only with the group specified under the namelist.


   ============ ==========================================================================
    ``.TRUE.``   The calculation will be done on the groups specified under the namelist.
   ============ ==========================================================================


````


* ``decomposemol``   
   For velocity_correlation mode, only ``.FALSE.`` is allowed.



````




* ``logfile``  
   The velocity correlation as a function of time will be written into log file. ``CHARACTER``      

   Default : ``log.velocity``

````


* ``autocorrfile``
   The corresponding autocorrelation function will be written into this file. ``CHARACTER``     

   Default : ``auto.velocity``

````



* The information under the namelist is required as shown in following example. 
  Basically, the format and requilred information in this namelist is similar 
  to that in dipole correlation nemelist. 
  A list of atomic types, a list of number of atoms in ecah type, and
  a list atomic charges for each atomic type are needed. 
  The ``groupmol=.TRUE.`` is required, a number of group following by the 
  list of atomic index for each group are required. 
  ::

    &velocity_correlation
        groupmol       = .TRUE.
        decomposemol   = LOGICAL
        logfile        = CHARACTER
        autocorrfile   = CHARACTER
    /
    X(1) X(2) ... X(ntype)
    N(1) N(2) ... N(ntype)
    q(1) q(2) ... q(ntype)
    ngroup
    natom1 xindex(1) xindex(2) ... xindex(natom1) 
    natom2 xindex(1) xindex(2) ... xindex(natom2) 
    natom3 xindex(1) xindex(2) ... xindex(natom3) 
    ...
    natom(ngroup) xindex(1) xindex(2) ... xindex(natom3) 


   

|
|


* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

