Merge branch 'dpd_charged' of https://github.com/Eddy-Barraud/lammps-custom into dpd_charged
This commit is contained in:
@ -72,7 +72,7 @@ OPT.
|
||||
|
||||
* :doc:`none <angle_none>`
|
||||
* :doc:`zero <angle_zero>`
|
||||
* :doc:`hybrid <angle_hybrid>`
|
||||
* :doc:`hybrid (k) <angle_hybrid>`
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
@ -148,6 +148,14 @@ performance characteristics on NVIDIA GPUs. Both, the KOKKOS
|
||||
and the :ref:`GPU package <PKG-GPU>` are maintained
|
||||
and allow running LAMMPS with GPU acceleration.
|
||||
|
||||
i-PI tool
|
||||
---------
|
||||
|
||||
.. versionchanged:: TBD
|
||||
|
||||
The i-PI tool has been removed from the LAMMPS distribution. Instead,
|
||||
instructions to install i-PI from PyPi via pip are provided.
|
||||
|
||||
restart2data tool
|
||||
-----------------
|
||||
|
||||
|
||||
@ -305,6 +305,8 @@ of the contents of the :f:mod:`LIBLAMMPS` Fortran interface to LAMMPS.
|
||||
:ftype extract_setting: function
|
||||
:f extract_global: :f:func:`extract_global`
|
||||
:ftype extract_global: function
|
||||
:f map_atom: :f:func:`map_atom`
|
||||
:ftype map_atom: function
|
||||
:f extract_atom: :f:func:`extract_atom`
|
||||
:ftype extract_atom: function
|
||||
:f extract_compute: :f:func:`extract_compute`
|
||||
|
||||
@ -13,6 +13,7 @@ This section documents the following functions:
|
||||
- :cpp:func:`lammps_extract_setting`
|
||||
- :cpp:func:`lammps_extract_global_datatype`
|
||||
- :cpp:func:`lammps_extract_global`
|
||||
- :cpp:func:`lammps_map_atom`
|
||||
|
||||
--------------------
|
||||
|
||||
@ -120,3 +121,8 @@ subdomains and processors.
|
||||
.. doxygenfunction:: lammps_extract_global
|
||||
:project: progguide
|
||||
|
||||
-----------------------
|
||||
|
||||
.. doxygenfunction:: lammps_map_atom
|
||||
:project: progguide
|
||||
|
||||
|
||||
@ -90,7 +90,7 @@ Miscellaneous tools
|
||||
|
||||
* :ref:`LAMMPS coding standards <coding_standard>`
|
||||
* :ref:`emacs <emacs>`
|
||||
* :ref:`i-pi <ipi>`
|
||||
* :ref:`i-PI <ipi>`
|
||||
* :ref:`kate <kate>`
|
||||
* :ref:`LAMMPS shell <lammps_shell>`
|
||||
* :ref:`LAMMPS GUI <lammps_gui>`
|
||||
@ -376,21 +376,40 @@ See README file in the tools/fep directory.
|
||||
|
||||
.. _ipi:
|
||||
|
||||
i-pi tool
|
||||
i-PI tool
|
||||
-------------------
|
||||
|
||||
The tools/i-pi directory contains a version of the i-PI package, with
|
||||
all the LAMMPS-unrelated files removed. It is provided so that it can
|
||||
be used with the :doc:`fix ipi <fix_ipi>` command to perform
|
||||
path-integral molecular dynamics (PIMD).
|
||||
.. versionchanged:: TBD
|
||||
|
||||
The tools/i-pi directory used to contain a bundled version of the i-PI
|
||||
software package for use with LAMMPS. This version, however, was
|
||||
removed in 06/2024.
|
||||
|
||||
The i-PI package was created and is maintained by Michele Ceriotti,
|
||||
michele.ceriotti at gmail.com, to interface to a variety of molecular
|
||||
dynamics codes.
|
||||
|
||||
See the tools/i-pi/manual.pdf file for an overview of i-PI, and the
|
||||
:doc:`fix ipi <fix_ipi>` page for further details on running PIMD
|
||||
calculations with LAMMPS.
|
||||
i-PI is now available via PyPi using the pip package manager at:
|
||||
https://pypi.org/project/ipi/
|
||||
|
||||
Here are the commands to set up a virtual environment and install
|
||||
i-PI into it with all its dependencies.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
python -m venv ipienv
|
||||
source ipienv/bin/activate
|
||||
pip install --upgrade pip
|
||||
pip install ipi
|
||||
|
||||
To install the development version from GitHub, please use:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
pip install git+https://github.com/i-pi/i-pi.git
|
||||
|
||||
For further information, please consult the [i-PI home
|
||||
page](https://ipi-code.org).
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
.. index:: bond_style hybrid
|
||||
.. index:: bond_style hybrid/kk
|
||||
|
||||
bond_style hybrid command
|
||||
=========================
|
||||
|
||||
Accelerator Variants: *hybrid/kk*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
@ -15,7 +18,7 @@ Syntax
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block: LAMMPS
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
bond_style hybrid harmonic fene
|
||||
bond_coeff 1 harmonic 80.0 1.2
|
||||
@ -60,6 +63,10 @@ bond types.
|
||||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
@ -79,10 +79,16 @@ setting the *reset* switch.
|
||||
Obtaining i-PI
|
||||
""""""""""""""
|
||||
|
||||
A simple version of the i-PI package, containing only files needed for use
|
||||
with LAMMPS, is provided in the tools/i-pi directory. We recommend you
|
||||
obtain the latest stable version from the github repository of i-PI,
|
||||
or from the python package index.
|
||||
Here are the commands to set up a virtual environment and install
|
||||
i-PI into it with all its dependencies via the PyPi repository and
|
||||
the pip package manager.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
python -m venv ipienv
|
||||
source ipienv/bin/activate
|
||||
pip install --upgrade pip
|
||||
pip install ipi
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
@ -125,7 +131,7 @@ Related commands
|
||||
|
||||
.. _IPICPC2:
|
||||
|
||||
**(IPI-CPC-2019)** Kapil et al., Comp Phys Comm 236, 214–223 (2019).
|
||||
**(IPI-CPC-2019)** Kapil et al., Comp Phys Comm 236, 214-223 (2019).
|
||||
|
||||
|
||||
.. _ipihome:
|
||||
|
||||
@ -992,6 +992,7 @@ emax
|
||||
Emax
|
||||
Embt
|
||||
emi
|
||||
Emilie
|
||||
Emmrich
|
||||
emol
|
||||
eN
|
||||
@ -1732,6 +1733,7 @@ Kalia
|
||||
Kamberaj
|
||||
Kantorovich
|
||||
Kapfer
|
||||
Kapil
|
||||
Karhunen
|
||||
Karls
|
||||
Karlsruhe
|
||||
@ -1763,8 +1765,10 @@ keflag
|
||||
Keir
|
||||
Kelchner
|
||||
Kelkar
|
||||
Kemppainen
|
||||
Kemper
|
||||
kepler
|
||||
Kemppainen
|
||||
keV
|
||||
Keyes
|
||||
keyfile
|
||||
@ -2483,6 +2487,7 @@ Nevery
|
||||
newfile
|
||||
Newns
|
||||
newtype
|
||||
nextsort
|
||||
Neyts
|
||||
Nf
|
||||
nfft
|
||||
@ -2672,6 +2677,7 @@ nzlo
|
||||
ocl
|
||||
octahedral
|
||||
octants
|
||||
Odegard
|
||||
Ohara
|
||||
O'Hearn
|
||||
ohenrich
|
||||
@ -3288,6 +3294,7 @@ Saidi
|
||||
saip
|
||||
Salanne
|
||||
Salles
|
||||
sametag
|
||||
sandia
|
||||
Sandia
|
||||
sandybrown
|
||||
@ -3405,6 +3412,7 @@ sinh
|
||||
sinusoid
|
||||
sinusoidally
|
||||
SiO
|
||||
Siochi
|
||||
Sirk
|
||||
Sival
|
||||
sizeI
|
||||
@ -3452,6 +3460,7 @@ solvated
|
||||
solvation
|
||||
someuser
|
||||
Sorensen
|
||||
sortfreq
|
||||
soundspeed
|
||||
sourceforge
|
||||
Souza
|
||||
@ -4150,6 +4159,7 @@ yy
|
||||
yz
|
||||
Zagaceta
|
||||
Zannoni
|
||||
Zavada
|
||||
Zavattieri
|
||||
zbl
|
||||
ZBL
|
||||
|
||||
@ -101,6 +101,7 @@ liblammpsplugin_t *liblammpsplugin_load(const char *lib)
|
||||
ADDSYM(extract_setting);
|
||||
ADDSYM(extract_global_datatype);
|
||||
ADDSYM(extract_global);
|
||||
ADDSYM(map_atom);
|
||||
|
||||
ADDSYM(extract_atom_datatype);
|
||||
ADDSYM(extract_atom);
|
||||
|
||||
@ -146,6 +146,7 @@ struct _liblammpsplugin {
|
||||
int (*extract_setting)(void *, const char *);
|
||||
int *(*extract_global_datatype)(void *, const char *);
|
||||
void *(*extract_global)(void *, const char *);
|
||||
void *(*map_atom)(void *, const void *);
|
||||
|
||||
int *(*extract_atom_datatype)(void *, const char *);
|
||||
void *(*extract_atom)(void *, const char *);
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
i-PI path integral interface examples
|
||||
=====================================
|
||||
|
||||
This folder contains a couple of examples to run LAMMPS as a client,
|
||||
This folder contains an example to run LAMMPS as a client,
|
||||
exchanging information on the atomic configurations, energy and forces
|
||||
with the i-PI Python interface
|
||||
[http://epfl-cosmo.github.io/gle4md/index.html?page=ipi]. These
|
||||
with the [http://ipi-code.org](i-PI Python interface). These
|
||||
examples require a working copy of i-PI and compiling LAMMPS in a UNIX
|
||||
environment. Note that a copy of i-PI is provided with LAMMPS, in the
|
||||
tools/i-pi directory.
|
||||
environment.
|
||||
i-PI can be installed from source or from `pip`. Please refer to the
|
||||
documentation for up-to-date installation instruction.
|
||||
|
||||
Note that the i-PI examples listed here are designed for the public V1.0
|
||||
version of i-PI. Refer to the LAMMPS examples distributed with i-PI if you
|
||||
are using a development version.
|
||||
Note that the i-PI examples listed here have been tested to work with the
|
||||
3.0 version of i-PI. Refer to the LAMMPS examples distributed with i-PI if you
|
||||
are using a different version.
|
||||
|
||||
Path integral simulation of graphene
|
||||
------------------------------------
|
||||
@ -25,7 +25,7 @@ and the format of the output.
|
||||
How to run i-PI
|
||||
---------------
|
||||
|
||||
You should have a relatively recent (>=2.5) version of Python and Numpy,
|
||||
You should have a relatively recent (>=3.5) version of Python and Numpy,
|
||||
and the public version of i-PI. You can then run i-PI by executing
|
||||
|
||||
```bash
|
||||
@ -33,7 +33,7 @@ and the public version of i-PI. You can then run i-PI by executing
|
||||
```
|
||||
|
||||
In a separate terminal, then, you should run LAMMPS compiled to provide
|
||||
fix_ipi functionalities.
|
||||
`fix_ipi` functionalities.
|
||||
|
||||
```bash
|
||||
$LAMMPS -in in.graphene
|
||||
@ -41,6 +41,3 @@ fix_ipi functionalities.
|
||||
|
||||
You can run multiple instances of LAMMPS if you want to exploit the
|
||||
parallelism over the path integral beads.
|
||||
|
||||
|
||||
|
||||
@ -1,31 +1,37 @@
|
||||
<simulation verbosity="medium">
|
||||
<initialize nbeads='8'>
|
||||
<file mode='xyz' units="angstrom"> i-pi_positions.xyz </file>
|
||||
<cell mode='manual' units="angstrom"> [ 51.8,0,0,0, 49.84,0,0,0, 200 ] </cell>
|
||||
<velocities mode='thermal' units='kelvin'> 300 </velocities>
|
||||
</initialize>
|
||||
<output prefix='graphene'>
|
||||
<properties stride='5' filename='out' flush="10" > [ step, time{picosecond}, conserved{electronvolt}, temperature{kelvin}, kinetic_cv{electronvolt}, potential{electronvolt}, pressure_cv{megapascal}] </properties>
|
||||
<simulation verbosity='medium'>
|
||||
<output prefix='simulation'>
|
||||
<properties stride='5' filename='out' flush="10" > [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] </properties>
|
||||
<properties stride='5' filename='iso' flush="10" > [ isotope_tdfep(1.167;C), isotope_scfep(1.167;0) ] </properties>
|
||||
<trajectory stride='20' filename='pos' flush="100"> positions{angstrom}</trajectory>
|
||||
<checkpoint stride='2000' />
|
||||
</output>
|
||||
<total_steps>1000</total_steps>
|
||||
<total_time>128000</total_time>
|
||||
<prng><seed>8417</seed></prng>
|
||||
<forces>
|
||||
<socket mode="unix">
|
||||
<address>graphene</address>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='gle'>
|
||||
<A shape='(5,5)'>
|
||||
[ 1.124524713863e-3, 1.648702679619e-6, 6.970075857471e-5, -2.202066291263e-4, 1.401342873485e-3, -1.681700567912e-6, 5.197673899653e-10, 4.365423872046e-6, -1.200041116490e-6, 2.564577183580e-6, -8.965478630849e-5, -4.365423872046e-6, 8.218704940997e-6, 3.114246791997e-5, -6.044142906315e-5, -6.272281358913e-5, 1.200041116490e-6, -3.114246791997e-5, 1.612301941566e-4, 6.958958085115e-5, 1.318373360752e-3, -2.564577183580e-6, 6.044142906315e-5, -6.958958085115e-5, 1.872119364197e-3]
|
||||
</A>
|
||||
</thermostat>
|
||||
<timestep units="femtosecond">1.0</timestep>
|
||||
<temperature units='kelvin'>300</temperature>
|
||||
<fixcom> True </fixcom>
|
||||
</ensemble>
|
||||
<properties stride='1' filename='kc'> [ kinetic_cv{kelvin}(C) ] </properties>
|
||||
<trajectory stride='5' filename='pos' flush="100">positions{angstrom}</trajectory>
|
||||
<trajectory stride='5' filename='kin' flush="100"> kinetic_cv </trajectory>
|
||||
<checkpoint stride='20000'/>
|
||||
</output>
|
||||
<total_steps>1000000</total_steps>
|
||||
<prng>
|
||||
<seed>31415</seed>
|
||||
</prng>
|
||||
<ffsocket name='lammps' mode='unix'>
|
||||
<address> graphene </address>
|
||||
</ffsocket>
|
||||
<system>
|
||||
<initialize nbeads='8'>
|
||||
<file mode='xyz'> i-pi_positions.xyz </file>
|
||||
<velocities mode='thermal' units='kelvin'> 300 </velocities>
|
||||
</initialize>
|
||||
<forces>
|
||||
<force forcefield='lammps'> </force>
|
||||
</forces>
|
||||
<motion mode='dynamics'>
|
||||
<dynamics mode='nvt'>
|
||||
<timestep units='femtosecond'> 1.0 </timestep>
|
||||
<thermostat mode='langevin'>
|
||||
<tau units='femtosecond'> 100 </tau>
|
||||
</thermostat>
|
||||
</dynamics>
|
||||
</motion>
|
||||
<ensemble>
|
||||
<temperature units='kelvin'> 300 </temperature>
|
||||
</ensemble>
|
||||
</system>
|
||||
</simulation>
|
||||
|
||||
@ -113,6 +113,9 @@ MODULE LIBLAMMPS
|
||||
PROCEDURE :: get_mpi_comm => lmp_get_mpi_comm
|
||||
PROCEDURE :: extract_setting => lmp_extract_setting
|
||||
PROCEDURE :: extract_global => lmp_extract_global
|
||||
PROCEDURE, PRIVATE :: lmp_map_atom_int
|
||||
PROCEDURE, PRIVATE :: lmp_map_atom_big
|
||||
GENERIC :: map_atom => lmp_map_atom_int, lmp_map_atom_big
|
||||
PROCEDURE :: extract_atom => lmp_extract_atom
|
||||
PROCEDURE :: extract_compute => lmp_extract_compute
|
||||
PROCEDURE :: extract_fix => lmp_extract_fix
|
||||
@ -508,6 +511,13 @@ MODULE LIBLAMMPS
|
||||
TYPE(c_ptr) :: lammps_extract_global
|
||||
END FUNCTION lammps_extract_global
|
||||
|
||||
FUNCTION lammps_map_atom(handle, tag) BIND(C)
|
||||
IMPORT :: c_ptr, c_int
|
||||
IMPLICIT NONE
|
||||
TYPE(c_ptr), INTENT(IN), VALUE :: handle, tag
|
||||
INTEGER(c_int) :: lammps_map_atom
|
||||
END FUNCTION lammps_map_atom
|
||||
|
||||
FUNCTION lammps_extract_atom_datatype(handle, name) BIND(C)
|
||||
IMPORT :: c_ptr, c_int
|
||||
IMPLICIT NONE
|
||||
@ -1323,6 +1333,38 @@ CONTAINS
|
||||
END SELECT
|
||||
END FUNCTION
|
||||
|
||||
! equivalent function to lammps_map_atom (for 32-bit integer tags)
|
||||
INTEGER FUNCTION lmp_map_atom_int(self, id)
|
||||
CLASS(lammps), INTENT(IN) :: self
|
||||
INTEGER(c_int), INTENT(IN), TARGET :: id
|
||||
INTEGER(c_int64_t), TARGET :: id64
|
||||
TYPE(c_ptr) :: Cptr
|
||||
|
||||
IF (SIZE_TAGINT == 8) THEN
|
||||
id64 = id
|
||||
Cptr = C_LOC(id64)
|
||||
ELSE
|
||||
Cptr = C_LOC(id)
|
||||
END IF
|
||||
lmp_map_atom_int = lammps_map_atom(self%handle, Cptr) + 1
|
||||
END FUNCTION lmp_map_atom_int
|
||||
|
||||
! equivalent function to lammps_map_atom (for 64-bit integer tags)
|
||||
INTEGER FUNCTION lmp_map_atom_big(self, id)
|
||||
CLASS(lammps), INTENT(IN) :: self
|
||||
INTEGER(c_int64_t), INTENT(IN), TARGET :: id
|
||||
INTEGER(c_int), TARGET :: id32
|
||||
TYPE(c_ptr) :: Cptr
|
||||
|
||||
IF (SIZE_TAGINT == 8) THEN
|
||||
Cptr = C_LOC(id)
|
||||
ELSE
|
||||
id32 = id
|
||||
Cptr = C_LOC(id32)
|
||||
END IF
|
||||
lmp_map_atom_big = lammps_map_atom(self%handle, Cptr) + 1
|
||||
END FUNCTION lmp_map_atom_big
|
||||
|
||||
! equivalent function to lammps_extract_atom
|
||||
! the assignment is actually overloaded so as to bind the pointers to
|
||||
! lammps data based on the information available from LAMMPS
|
||||
|
||||
@ -269,6 +269,9 @@ class lammps(object):
|
||||
self.lib.lammps_extract_global_datatype.restype = c_int
|
||||
self.lib.lammps_extract_compute.argtypes = [c_void_p, c_char_p, c_int, c_int]
|
||||
|
||||
self.lib.lammps_map_atom.argtypes = [c_void_p, c_void_p]
|
||||
self.lib.lammps_map_atom.restype = c_int
|
||||
|
||||
self.lib.lammps_get_thermo.argtypes = [c_void_p, c_char_p]
|
||||
self.lib.lammps_get_thermo.restype = c_double
|
||||
|
||||
@ -893,6 +896,8 @@ class lammps(object):
|
||||
veclen = vec_dict[name]
|
||||
elif name == 'respa_dt':
|
||||
veclen = self.extract_global('respa_levels',LAMMPS_INT)
|
||||
elif name == 'sametag':
|
||||
veclen = self.extract_setting('nall')
|
||||
else:
|
||||
veclen = 1
|
||||
|
||||
@ -926,6 +931,24 @@ class lammps(object):
|
||||
else: return target_type(ptr[0])
|
||||
return None
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# map global atom ID to local atom index
|
||||
|
||||
def map_atom(self, id):
|
||||
"""Map a global atom ID (aka tag) to the local atom index
|
||||
|
||||
This is a wrapper around the :cpp:func:`lammps_map_atom`
|
||||
function of the C-library interface.
|
||||
|
||||
:param id: atom ID
|
||||
:type id: int
|
||||
:return: local index
|
||||
:rtype: int
|
||||
"""
|
||||
|
||||
tag = self.c_tagint(id)
|
||||
return self.lib.lammps_map_atom(self.lmp, pointer(tag))
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# extract per-atom info datatype
|
||||
|
||||
|
||||
@ -86,6 +86,8 @@ action bond_fene_kokkos.cpp bond_fene.cpp
|
||||
action bond_fene_kokkos.h bond_fene.h
|
||||
action bond_harmonic_kokkos.cpp bond_harmonic.cpp
|
||||
action bond_harmonic_kokkos.h bond_harmonic.h
|
||||
action bond_hybrid_kokkos.cpp bond_hybrid.cpp
|
||||
action bond_hybrid_kokkos.h bond_hybrid.h
|
||||
action comm_kokkos.cpp
|
||||
action comm_kokkos.h
|
||||
action comm_tiled_kokkos.cpp
|
||||
|
||||
@ -34,6 +34,8 @@ using namespace LAMMPS_NS;
|
||||
template<class DeviceType>
|
||||
BondClass2Kokkos<DeviceType>::BondClass2Kokkos(LAMMPS *lmp) : BondClass2(lmp)
|
||||
{
|
||||
kokkosable = 1;
|
||||
|
||||
atomKK = (AtomKokkos *) atom;
|
||||
neighborKK = (NeighborKokkos *) neighbor;
|
||||
execution_space = ExecutionSpaceFromDevice<DeviceType>::space;
|
||||
@ -122,12 +124,12 @@ void BondClass2Kokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
|
||||
if (eflag_atom) {
|
||||
k_eatom.template modify<DeviceType>();
|
||||
k_eatom.template sync<LMPHostType>();
|
||||
k_eatom.sync_host();
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
k_vatom.template modify<DeviceType>();
|
||||
k_vatom.template sync<LMPHostType>();
|
||||
k_vatom.sync_host();
|
||||
}
|
||||
|
||||
copymode = 0;
|
||||
@ -227,13 +229,13 @@ void BondClass2Kokkos<DeviceType>::coeff(int narg, char **arg)
|
||||
k_r0.h_view[i] = r0[i];
|
||||
}
|
||||
|
||||
k_k2.template modify<LMPHostType>();
|
||||
k_k2.modify_host();
|
||||
k_k2.template sync<DeviceType>();
|
||||
k_k3.template modify<LMPHostType>();
|
||||
k_k3.modify_host();
|
||||
k_k3.template sync<DeviceType>();
|
||||
k_k4.template modify<LMPHostType>();
|
||||
k_k4.modify_host();
|
||||
k_k4.template sync<DeviceType>();
|
||||
k_r0.template modify<LMPHostType>();
|
||||
k_r0.modify_host();
|
||||
k_r0.template sync<DeviceType>();
|
||||
}
|
||||
|
||||
@ -264,13 +266,13 @@ void BondClass2Kokkos<DeviceType>::read_restart(FILE *fp)
|
||||
k_r0.h_view[i] = r0[i];
|
||||
}
|
||||
|
||||
k_k2.template modify<LMPHostType>();
|
||||
k_k2.modify_host();
|
||||
k_k2.template sync<DeviceType>();
|
||||
k_k3.template modify<LMPHostType>();
|
||||
k_k3.modify_host();
|
||||
k_k3.template sync<DeviceType>();
|
||||
k_k4.template modify<LMPHostType>();
|
||||
k_k4.modify_host();
|
||||
k_k4.template sync<DeviceType>();
|
||||
k_r0.template modify<LMPHostType>();
|
||||
k_r0.modify_host();
|
||||
k_r0.template sync<DeviceType>();
|
||||
}
|
||||
|
||||
|
||||
@ -59,6 +59,10 @@ class BondClass2Kokkos : public BondClass2 {
|
||||
const F_FLOAT &ebond, const F_FLOAT &fbond, const F_FLOAT &delx,
|
||||
const F_FLOAT &dely, const F_FLOAT &delz) const;
|
||||
|
||||
typedef typename KKDevice<DeviceType>::value KKDeviceType;
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType> k_vatom;
|
||||
|
||||
protected:
|
||||
|
||||
class NeighborKokkos *neighborKK;
|
||||
@ -67,9 +71,6 @@ class BondClass2Kokkos : public BondClass2 {
|
||||
typename Kokkos::View<double*[3],typename AT::t_f_array::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > f;
|
||||
typename AT::t_int_2d bondlist;
|
||||
|
||||
typedef typename KKDevice<DeviceType>::value KKDeviceType;
|
||||
Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType> k_eatom;
|
||||
Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType> k_vatom;
|
||||
Kokkos::View<E_FLOAT*,Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_eatom;
|
||||
Kokkos::View<F_FLOAT*[6],Kokkos::LayoutRight,KKDeviceType,Kokkos::MemoryTraits<Kokkos::Atomic> > d_vatom;
|
||||
|
||||
|
||||
@ -37,6 +37,8 @@ using MathConst::MY_CUBEROOT2;
|
||||
template<class DeviceType>
|
||||
BondFENEKokkos<DeviceType>::BondFENEKokkos(LAMMPS *lmp) : BondFENE(lmp)
|
||||
{
|
||||
kokkosable = 1;
|
||||
|
||||
atomKK = (AtomKokkos *) atom;
|
||||
neighborKK = (NeighborKokkos *) neighbor;
|
||||
execution_space = ExecutionSpaceFromDevice<DeviceType>::space;
|
||||
@ -135,12 +137,12 @@ void BondFENEKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
|
||||
if (eflag_atom) {
|
||||
k_eatom.template modify<DeviceType>();
|
||||
k_eatom.template sync<LMPHostType>();
|
||||
k_eatom.sync_host();
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
k_vatom.template modify<DeviceType>();
|
||||
k_vatom.template sync<LMPHostType>();
|
||||
k_vatom.sync_host();
|
||||
}
|
||||
|
||||
copymode = 0;
|
||||
@ -267,10 +269,10 @@ void BondFENEKokkos<DeviceType>::coeff(int narg, char **arg)
|
||||
k_sigma.h_view[i] = sigma[i];
|
||||
}
|
||||
|
||||
k_k.template modify<LMPHostType>();
|
||||
k_r0.template modify<LMPHostType>();
|
||||
k_epsilon.template modify<LMPHostType>();
|
||||
k_sigma.template modify<LMPHostType>();
|
||||
k_k.modify_host();
|
||||
k_r0.modify_host();
|
||||
k_epsilon.modify_host();
|
||||
k_sigma.modify_host();
|
||||
}
|
||||
|
||||
|
||||
@ -291,10 +293,10 @@ void BondFENEKokkos<DeviceType>::read_restart(FILE *fp)
|
||||
k_sigma.h_view[i] = sigma[i];
|
||||
}
|
||||
|
||||
k_k.template modify<LMPHostType>();
|
||||
k_r0.template modify<LMPHostType>();
|
||||
k_epsilon.template modify<LMPHostType>();
|
||||
k_sigma.template modify<LMPHostType>();
|
||||
k_k.modify_host();
|
||||
k_r0.modify_host();
|
||||
k_epsilon.modify_host();
|
||||
k_sigma.modify_host();
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
||||
@ -58,6 +58,9 @@ class BondFENEKokkos : public BondFENE {
|
||||
const F_FLOAT &ebond, const F_FLOAT &fbond, const F_FLOAT &delx,
|
||||
const F_FLOAT &dely, const F_FLOAT &delz) const;
|
||||
|
||||
DAT::tdual_efloat_1d k_eatom;
|
||||
DAT::tdual_virial_array k_vatom;
|
||||
|
||||
protected:
|
||||
|
||||
class NeighborKokkos *neighborKK;
|
||||
@ -66,8 +69,6 @@ class BondFENEKokkos : public BondFENE {
|
||||
typename ArrayTypes<DeviceType>::t_f_array f;
|
||||
typename ArrayTypes<DeviceType>::t_int_2d bondlist;
|
||||
|
||||
DAT::tdual_efloat_1d k_eatom;
|
||||
DAT::tdual_virial_array k_vatom;
|
||||
typename ArrayTypes<DeviceType>::t_efloat_1d d_eatom;
|
||||
typename ArrayTypes<DeviceType>::t_virial_array d_vatom;
|
||||
|
||||
|
||||
@ -34,6 +34,8 @@ using namespace LAMMPS_NS;
|
||||
template<class DeviceType>
|
||||
BondHarmonicKokkos<DeviceType>::BondHarmonicKokkos(LAMMPS *lmp) : BondHarmonic(lmp)
|
||||
{
|
||||
kokkosable = 1;
|
||||
|
||||
atomKK = (AtomKokkos *) atom;
|
||||
neighborKK = (NeighborKokkos *) neighbor;
|
||||
execution_space = ExecutionSpaceFromDevice<DeviceType>::space;
|
||||
@ -65,23 +67,20 @@ void BondHarmonicKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
// reallocate per-atom arrays if necessary
|
||||
|
||||
if (eflag_atom) {
|
||||
//if(k_eatom.extent(0)<maxeatom) { // won't work without adding zero functor
|
||||
if (k_eatom.extent(0) < maxeatom) {
|
||||
memoryKK->destroy_kokkos(k_eatom,eatom);
|
||||
memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom");
|
||||
d_eatom = k_eatom.template view<KKDeviceType>();
|
||||
//}
|
||||
} else Kokkos::deep_copy(d_eatom,0.0);
|
||||
}
|
||||
if (vflag_atom) {
|
||||
//if(k_vatom.extent(0)<maxvatom) { // won't work without adding zero functor
|
||||
if (k_vatom.extent(0) < maxvatom) {
|
||||
memoryKK->destroy_kokkos(k_vatom,vatom);
|
||||
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom");
|
||||
d_vatom = k_vatom.template view<KKDeviceType>();
|
||||
//}
|
||||
} else Kokkos::deep_copy(d_vatom,0.0);
|
||||
}
|
||||
|
||||
// if (eflag || vflag) atomKK->modified(execution_space,datamask_modify);
|
||||
// else atomKK->modified(execution_space,F_MASK);
|
||||
|
||||
x = atomKK->k_x.template view<DeviceType>();
|
||||
f = atomKK->k_f.template view<DeviceType>();
|
||||
neighborKK->k_bondlist.template sync<DeviceType>();
|
||||
@ -122,12 +121,12 @@ void BondHarmonicKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
|
||||
if (eflag_atom) {
|
||||
k_eatom.template modify<DeviceType>();
|
||||
k_eatom.template sync<LMPHostType>();
|
||||
k_eatom.sync_host();
|
||||
}
|
||||
|
||||
if (vflag_atom) {
|
||||
k_vatom.template modify<DeviceType>();
|
||||
k_vatom.template sync<LMPHostType>();
|
||||
k_vatom.sync_host();
|
||||
}
|
||||
|
||||
copymode = 0;
|
||||
@ -214,8 +213,8 @@ void BondHarmonicKokkos<DeviceType>::coeff(int narg, char **arg)
|
||||
k_r0.h_view[i] = r0[i];
|
||||
}
|
||||
|
||||
k_k.template modify<LMPHostType>();
|
||||
k_r0.template modify<LMPHostType>();
|
||||
k_k.modify_host();
|
||||
k_r0.modify_host();
|
||||
k_k.template sync<DeviceType>();
|
||||
k_r0.template sync<DeviceType>();
|
||||
}
|
||||
@ -241,8 +240,8 @@ void BondHarmonicKokkos<DeviceType>::read_restart(FILE *fp)
|
||||
k_r0.h_view[i] = r0[i];
|
||||
}
|
||||
|
||||
k_k.template modify<LMPHostType>();
|
||||
k_r0.template modify<LMPHostType>();
|
||||
k_k.modify_host();
|
||||
k_r0.modify_host();
|
||||
k_k.template sync<DeviceType>();
|
||||
k_r0.template sync<DeviceType>();
|
||||
}
|
||||
|
||||
@ -37,6 +37,7 @@ class BondHarmonicKokkos : public BondHarmonic {
|
||||
public:
|
||||
typedef DeviceType device_type;
|
||||
typedef EV_FLOAT value_type;
|
||||
typedef ArrayTypes<DeviceType> AT;
|
||||
|
||||
BondHarmonicKokkos(class LAMMPS *);
|
||||
~BondHarmonicKokkos() override;
|
||||
@ -62,7 +63,6 @@ class BondHarmonicKokkos : public BondHarmonic {
|
||||
|
||||
class NeighborKokkos *neighborKK;
|
||||
|
||||
typedef ArrayTypes<DeviceType> AT;
|
||||
typename AT::t_x_array_randomread x;
|
||||
typename Kokkos::View<double*[3],typename AT::t_f_array::array_layout,typename KKDevice<DeviceType>::value,Kokkos::MemoryTraits<Kokkos::Atomic> > f;
|
||||
typename AT::t_int_2d bondlist;
|
||||
|
||||
215
src/KOKKOS/bond_hybrid_kokkos.cpp
Normal file
215
src/KOKKOS/bond_hybrid_kokkos.cpp
Normal file
@ -0,0 +1,215 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, Sandia National Laboratories
|
||||
LAMMPS development team: developers@lammps.org
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include "bond_hybrid_kokkos.h"
|
||||
|
||||
#include "atom_kokkos.h"
|
||||
#include "atom_masks.h"
|
||||
#include "comm.h"
|
||||
#include "error.h"
|
||||
#include "force.h"
|
||||
#include "kokkos.h"
|
||||
#include "memory_kokkos.h"
|
||||
#include "neighbor_kokkos.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
#define EXTRA 1000
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
BondHybridKokkos::BondHybridKokkos(LAMMPS *lmp) : BondHybrid(lmp)
|
||||
{
|
||||
kokkosable = 1;
|
||||
|
||||
atomKK = (AtomKokkos *) atom;
|
||||
neighborKK = (NeighborKokkos *) neighbor;
|
||||
|
||||
execution_space = Device;
|
||||
|
||||
datamask_read = EMPTY_MASK;
|
||||
datamask_modify = EMPTY_MASK;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
BondHybridKokkos::~BondHybridKokkos()
|
||||
{
|
||||
deallocate();
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void BondHybridKokkos::compute(int eflag, int vflag)
|
||||
{
|
||||
// save ptrs to original bondlist
|
||||
|
||||
int nbondlist_orig = neighbor->nbondlist;
|
||||
neighborKK->k_bondlist.sync_device();
|
||||
auto k_bondlist_orig = neighborKK->k_bondlist;
|
||||
auto d_bondlist_orig = k_bondlist_orig.d_view;
|
||||
auto d_nbondlist = k_nbondlist.d_view;
|
||||
auto h_nbondlist = k_nbondlist.h_view;
|
||||
|
||||
// if this is re-neighbor step, create sub-style bondlists
|
||||
// nbondlist[] = length of each sub-style list
|
||||
// realloc sub-style bondlist if necessary
|
||||
// load sub-style bondlist with 3 values from original bondlist
|
||||
|
||||
if (neighbor->ago == 0) {
|
||||
Kokkos::deep_copy(d_nbondlist,0);
|
||||
|
||||
k_map.sync_device();
|
||||
auto d_map = k_map.d_view;
|
||||
|
||||
Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) {
|
||||
const int m = d_map[d_bondlist_orig(i,2)];
|
||||
if (m >= 0) Kokkos::atomic_increment(&d_nbondlist[m]);
|
||||
});
|
||||
|
||||
k_nbondlist.modify_device();
|
||||
k_nbondlist.sync_host();
|
||||
|
||||
maxbond_all = 0;
|
||||
for (int m = 0; m < nstyles; m++)
|
||||
if (h_nbondlist[m] > maxbond_all)
|
||||
maxbond_all = h_nbondlist[m] + EXTRA;
|
||||
|
||||
if (k_bondlist.d_view.extent(1) < maxbond_all)
|
||||
MemKK::realloc_kokkos(k_bondlist, "bond_hybrid:bondlist", nstyles, maxbond_all, 3);
|
||||
auto d_bondlist = k_bondlist.d_view;
|
||||
|
||||
Kokkos::deep_copy(d_nbondlist,0);
|
||||
|
||||
Kokkos::parallel_for(nbondlist_orig,LAMMPS_LAMBDA(int i) {
|
||||
const int m = d_map[d_bondlist_orig(i,2)];
|
||||
if (m < 0) return;
|
||||
const int n = Kokkos::atomic_fetch_add(&d_nbondlist[m],1);
|
||||
d_bondlist(m,n,0) = d_bondlist_orig(i,0);
|
||||
d_bondlist(m,n,1) = d_bondlist_orig(i,1);
|
||||
d_bondlist(m,n,2) = d_bondlist_orig(i,2);
|
||||
});
|
||||
}
|
||||
|
||||
// call each sub-style's compute function
|
||||
// set neighbor->bondlist to sub-style bondlist before call
|
||||
// accumulate sub-style global/peratom energy/virial in hybrid
|
||||
|
||||
ev_init(eflag, vflag);
|
||||
|
||||
k_nbondlist.modify_device();
|
||||
k_nbondlist.sync_host();
|
||||
|
||||
for (int m = 0; m < nstyles; m++) {
|
||||
neighbor->nbondlist = h_nbondlist[m];
|
||||
auto k_bondlist_m = Kokkos::subview(k_bondlist,m,Kokkos::ALL,Kokkos::ALL);
|
||||
k_bondlist_m.modify_device();
|
||||
neighborKK->k_bondlist = k_bondlist_m;
|
||||
|
||||
auto style = styles[m];
|
||||
atomKK->sync(style->execution_space,style->datamask_read);
|
||||
style->compute(eflag, vflag);
|
||||
atomKK->modified(style->execution_space,style->datamask_modify);
|
||||
|
||||
if (eflag_global) energy += style->energy;
|
||||
if (vflag_global)
|
||||
for (int n = 0; n < 6; n++) virial[n] += style->virial[n];
|
||||
|
||||
if (eflag_atom) {
|
||||
int n = atom->nlocal;
|
||||
if (force->newton_bond) n += atom->nghost;
|
||||
double *eatom_substyle = styles[m]->eatom;
|
||||
for (int i = 0; i < n; i++) eatom[i] += eatom_substyle[i];
|
||||
}
|
||||
if (vflag_atom) {
|
||||
int n = atom->nlocal;
|
||||
if (force->newton_bond) n += atom->nghost;
|
||||
double **vatom_substyle = styles[m]->vatom;
|
||||
for (int i = 0; i < n; i++)
|
||||
for (int j = 0; j < 6; j++) vatom[i][j] += vatom_substyle[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
// restore ptrs to original bondlist
|
||||
|
||||
neighbor->nbondlist = nbondlist_orig;
|
||||
neighborKK->k_bondlist = k_bondlist_orig;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void BondHybridKokkos::allocate()
|
||||
{
|
||||
allocated = 1;
|
||||
int n = atom->nbondtypes;
|
||||
|
||||
memoryKK->create_kokkos(k_map, map, n + 1, "bond:map");
|
||||
memory->create(setflag, n + 1, "bond:setflag");
|
||||
for (int i = 1; i <= n; i++) setflag[i] = 0;
|
||||
|
||||
k_nbondlist = DAT::tdual_int_1d("bond:nbondlist", nstyles);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void BondHybridKokkos::deallocate()
|
||||
{
|
||||
if (!allocated) return;
|
||||
|
||||
allocated = 0;
|
||||
|
||||
memory->destroy(setflag);
|
||||
memoryKK->destroy_kokkos(k_map,map);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
set coeffs for one type
|
||||
---------------------------------------------------------------------- */
|
||||
|
||||
void BondHybridKokkos::coeff(int narg, char **arg)
|
||||
{
|
||||
BondHybrid::coeff(narg,arg);
|
||||
|
||||
k_map.modify_host();
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void BondHybridKokkos::init_style()
|
||||
{
|
||||
BondHybrid::init_style();
|
||||
|
||||
for (int m = 0; m < nstyles; m++) {
|
||||
if (!styles[m]->kokkosable)
|
||||
error->all(FLERR,"Must use only Kokkos-enabled bond styles with bond_style hybrid/kk");
|
||||
|
||||
if (styles[m]->execution_space == Host)
|
||||
lmp->kokkos->allow_overlap = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
memory usage
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
double BondHybridKokkos::memory_usage()
|
||||
{
|
||||
double bytes = (double) maxeatom * sizeof(double);
|
||||
bytes += (double) maxvatom * 6 * sizeof(double);
|
||||
for (int m = 0; m < nstyles; m++) bytes += (double) maxbond_all * 3 * sizeof(int);
|
||||
for (int m = 0; m < nstyles; m++)
|
||||
if (styles[m]) bytes += styles[m]->memory_usage();
|
||||
return bytes;
|
||||
}
|
||||
58
src/KOKKOS/bond_hybrid_kokkos.h
Normal file
58
src/KOKKOS/bond_hybrid_kokkos.h
Normal file
@ -0,0 +1,58 @@
|
||||
/* -*- c++ -*- ----------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, Sandia National Laboratories
|
||||
LAMMPS development team: developers@lammps.org
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef BOND_CLASS
|
||||
// clang-format off
|
||||
BondStyle(hybrid/kk,BondHybridKokkos);
|
||||
BondStyle(hybrid/kk/device,BondHybridKokkos);
|
||||
BondStyle(hybrid/kk/host,BondHybridKokkos);
|
||||
// clang-format on
|
||||
#else
|
||||
|
||||
// clang-format off
|
||||
#ifndef LMP_BOND_HYBRID_KOKKOS_H
|
||||
#define LMP_BOND_HYBRID_KOKKOS_H
|
||||
|
||||
#include "bond_hybrid.h"
|
||||
#include "kokkos_type.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
class BondHybridKokkos : public BondHybrid {
|
||||
friend class Force;
|
||||
|
||||
public:
|
||||
BondHybridKokkos(class LAMMPS *);
|
||||
~BondHybridKokkos() override;
|
||||
void compute(int, int) override;
|
||||
void coeff(int, char **) override;
|
||||
void init_style() override;
|
||||
double memory_usage() override;
|
||||
|
||||
private:
|
||||
int maxbond_all;
|
||||
|
||||
class NeighborKokkos *neighborKK;
|
||||
|
||||
DAT::tdual_int_1d k_map; // which style each bond type points to
|
||||
DAT::tdual_int_1d k_nbondlist; // # of bonds in sub-style bondlists
|
||||
DAT::tdual_int_3d k_bondlist; // bondlist for each sub-style
|
||||
|
||||
void allocate() override;
|
||||
void deallocate() override;
|
||||
};
|
||||
|
||||
} // namespace LAMMPS_NS
|
||||
|
||||
#endif
|
||||
#endif
|
||||
@ -1408,6 +1408,7 @@ typedef SNAComplex<SNAreal> SNAcomplex;
|
||||
#endif
|
||||
|
||||
#define LAMMPS_LAMBDA KOKKOS_LAMBDA
|
||||
#define LAMMPS_CLASS_LAMBDA KOKKOS_CLASS_LAMBDA
|
||||
|
||||
#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP)
|
||||
#define LAMMPS_DEVICE_FUNCTION __device__
|
||||
|
||||
@ -31,9 +31,7 @@ PairHybridKokkos::PairHybridKokkos(LAMMPS *lmp) : PairHybrid(lmp)
|
||||
kokkosable = 1;
|
||||
atomKK = (AtomKokkos *) atom;
|
||||
|
||||
// prevent overlapping host/device computation, which isn't
|
||||
// yet supported by pair_hybrid_kokkos
|
||||
execution_space = Device;
|
||||
execution_space = Device;
|
||||
|
||||
datamask_read = EMPTY_MASK;
|
||||
datamask_modify = EMPTY_MASK;
|
||||
|
||||
@ -63,8 +63,7 @@ Bond::Bond(LAMMPS *_lmp) : Pointers(_lmp)
|
||||
execution_space = Host;
|
||||
datamask_read = ALL_MASK;
|
||||
datamask_modify = ALL_MASK;
|
||||
|
||||
copymode = 0;
|
||||
copymode = kokkosable = 0;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
@ -49,7 +49,7 @@ class Bond : protected Pointers {
|
||||
|
||||
ExecutionSpace execution_space;
|
||||
unsigned int datamask_read, datamask_modify;
|
||||
int copymode;
|
||||
int copymode, kokkosable;
|
||||
|
||||
Bond(class LAMMPS *);
|
||||
~Bond() override;
|
||||
|
||||
@ -51,14 +51,7 @@ BondHybrid::~BondHybrid()
|
||||
|
||||
delete[] svector;
|
||||
|
||||
if (allocated) {
|
||||
memory->destroy(setflag);
|
||||
memory->destroy(map);
|
||||
delete[] nbondlist;
|
||||
delete[] maxbond;
|
||||
for (int i = 0; i < nstyles; i++) memory->destroy(bondlist[i]);
|
||||
delete[] bondlist;
|
||||
}
|
||||
deallocate();
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
@ -166,6 +159,22 @@ void BondHybrid::allocate()
|
||||
for (int m = 0; m < nstyles; m++) bondlist[m] = nullptr;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void BondHybrid::deallocate()
|
||||
{
|
||||
if (!allocated) return;
|
||||
|
||||
allocated = 0;
|
||||
|
||||
memory->destroy(setflag);
|
||||
memory->destroy(map);
|
||||
delete[] nbondlist;
|
||||
delete[] maxbond;
|
||||
for (int i = 0; i < nstyles; i++) memory->destroy(bondlist[i]);
|
||||
delete[] bondlist;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
create one bond style for each arg in list
|
||||
------------------------------------------------------------------------- */
|
||||
@ -186,15 +195,7 @@ void BondHybrid::settings(int narg, char **arg)
|
||||
has_quartic = -1;
|
||||
}
|
||||
|
||||
if (allocated) {
|
||||
memory->destroy(setflag);
|
||||
memory->destroy(map);
|
||||
delete[] nbondlist;
|
||||
delete[] maxbond;
|
||||
for (i = 0; i < nstyles; i++) memory->destroy(bondlist[i]);
|
||||
delete[] bondlist;
|
||||
}
|
||||
allocated = 0;
|
||||
deallocate();
|
||||
|
||||
// allocate list of sub-styles
|
||||
|
||||
@ -400,7 +401,7 @@ void BondHybrid::read_restart(FILE *fp)
|
||||
keywords[m] = new char[n];
|
||||
if (me == 0) utils::sfread(FLERR, keywords[m], sizeof(char), n, fp, nullptr, error);
|
||||
MPI_Bcast(keywords[m], n, MPI_CHAR, 0, world);
|
||||
styles[m] = force->new_bond(keywords[m], 0, dummy);
|
||||
styles[m] = force->new_bond(keywords[m], 1, dummy);
|
||||
styles[m]->read_restart_settings(fp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,14 +44,15 @@ class BondHybrid : public Bond {
|
||||
double single(int, double, int, int, double &) override;
|
||||
double memory_usage() override;
|
||||
|
||||
private:
|
||||
protected:
|
||||
int *map; // which style each bond type points to
|
||||
int has_quartic; // which style, if any is a quartic bond style
|
||||
int *nbondlist; // # of bonds in sub-style bondlists
|
||||
int *maxbond; // max # of bonds sub-style lists can store
|
||||
int ***bondlist; // bondlist for each sub-style
|
||||
|
||||
void allocate();
|
||||
virtual void allocate();
|
||||
virtual void deallocate();
|
||||
void flags();
|
||||
|
||||
virtual void init_svector();
|
||||
|
||||
@ -1399,6 +1399,16 @@ int lammps_extract_global_datatype(void * /*handle*/, const char *name)
|
||||
if (strcmp(name,"special_lj") == 0) return LAMMPS_DOUBLE;
|
||||
if (strcmp(name,"special_coul") == 0) return LAMMPS_DOUBLE;
|
||||
|
||||
if (strcmp(name,"map_style") == 0) return LAMMPS_INT;
|
||||
#if defined(LAMMPS_BIGBIG)
|
||||
if (strcmp(name,"map_tag_max") == 0) return LAMMPS_BIGINT;
|
||||
#else
|
||||
if (strcmp(name,"map_tag_max") == 0) return LAMMPS_INT;
|
||||
#endif
|
||||
if (strcmp(name,"sametag") == 0) return LAMMPS_INT;
|
||||
if (strcmp(name,"sortfreq") == 0) return LAMMPS_INT;
|
||||
if (strcmp(name,"nextsort") == 0) return LAMMPS_BIGINT;
|
||||
|
||||
if (strcmp(name,"q_flag") == 0) return LAMMPS_INT;
|
||||
|
||||
if (strcmp(name,"units") == 0) return LAMMPS_STRING;
|
||||
@ -1651,6 +1661,26 @@ report the "native" data type. The following tables are provided:
|
||||
- double
|
||||
- 4
|
||||
- special :doc:`pair weighting factors <special_bonds>` for Coulomb interactions (first element is always 1.0)
|
||||
* - map_style
|
||||
- int
|
||||
- 1
|
||||
- :doc:`atom map setting <atom_modify>`: 0 = none, 1 = array, 2 = hash, 3 = yes
|
||||
* - map_tag_max
|
||||
- bigint or int
|
||||
- 1
|
||||
- largest atom ID that can be mapped to a local index (bigint only with -DLAMMPS_BIGBIG)
|
||||
* - sametag
|
||||
- int
|
||||
- nlocal+nghost
|
||||
- index of next local atom with the same ID in ascending order. -1 signals end.
|
||||
* - sortfreq
|
||||
- int
|
||||
- 1
|
||||
- frequency of atom sorting. 0 means sorting is off.
|
||||
* - nextsort
|
||||
- bigint
|
||||
- 1
|
||||
- timestep when atoms are sorted next
|
||||
* - q_flag
|
||||
- int
|
||||
- 1
|
||||
@ -1846,6 +1876,12 @@ void *lammps_extract_global(void *handle, const char *name)
|
||||
|
||||
if (strcmp(name,"q_flag") == 0) return (void *) &lmp->atom->q_flag;
|
||||
|
||||
if (strcmp(name,"map_style") == 0) return (void *) &lmp->atom->map_style;
|
||||
if (strcmp(name,"map_tag_max") == 0) return (void *) &lmp->atom->map_tag_max;
|
||||
if (strcmp(name,"sametag") == 0) return (void *) lmp->atom->sametag;
|
||||
if (strcmp(name,"sortfreq") == 0) return (void *) &lmp->atom->sortfreq;
|
||||
if (strcmp(name,"nextsort") == 0) return (void *) &lmp->atom->nextsort;
|
||||
|
||||
// global constants defined by units
|
||||
|
||||
if (strcmp(name,"boltz") == 0) return (void *) &lmp->force->boltz;
|
||||
@ -1873,6 +1909,37 @@ void *lammps_extract_global(void *handle, const char *name)
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
/** Map global atom ID to local atom index
|
||||
*
|
||||
\verbatim embed:rst
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
This function returns an integer that corresponds to the local atom
|
||||
index for an atom with the global atom ID *id*. The atom ID is passed
|
||||
as a void pointer so that it can use the same interface for either a
|
||||
32-bit or 64-bit tagint. The size of the tagint can be determined
|
||||
using :cpp:func:`lammps_extract_setting`.
|
||||
|
||||
\endverbatim
|
||||
*
|
||||
* \param handle pointer to a previously created LAMMPS instance
|
||||
* \param id void pointer to the atom ID (of data type tagint, i.e. 32-bit or 64-bit integer)
|
||||
* \return local atom index or -1 if the atom is not found or no map exists
|
||||
* */
|
||||
|
||||
int lammps_map_atom(void *handle, const void *id)
|
||||
{
|
||||
auto lmp = (LAMMPS *) handle;
|
||||
auto tag = (const tagint *) id;
|
||||
if (lmp->atom->map_style > Atom::MAP_NONE)
|
||||
return lmp->atom->map(*tag);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
/** Get data type of a LAMMPS per-atom property
|
||||
*
|
||||
\verbatim embed:rst
|
||||
|
||||
@ -162,6 +162,8 @@ int lammps_extract_setting(void *handle, const char *keyword);
|
||||
int lammps_extract_global_datatype(void *handle, const char *name);
|
||||
void *lammps_extract_global(void *handle, const char *name);
|
||||
|
||||
int lammps_map_atom(void *handle, const void *id);
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
* Library functions to read or modify per-atom data in LAMMPS
|
||||
* ---------------------------------------------------------------------- */
|
||||
|
||||
@ -1,4 +0,0 @@
|
||||
set tabstop=3
|
||||
set softtabstop=3
|
||||
set shiftwidth=3
|
||||
set expandtab
|
||||
@ -1 +0,0 @@
|
||||
include README.rst
|
||||
18
tools/i-pi/README.md
Normal file
18
tools/i-pi/README.md
Normal file
@ -0,0 +1,18 @@
|
||||
This folder used to contain a bundled version of [i-PI](https://ipi-code.org)
|
||||
but the bundled version was removed in 06/2024.
|
||||
|
||||
i-PI is available via PyPi using the pip package manager at:
|
||||
https://pypi.org/project/ipi/
|
||||
|
||||
Here are the commands to set up a virtual environment and
|
||||
install i-PI into it with all its dependencies.
|
||||
|
||||
``` sh
|
||||
python -m venv ipienv
|
||||
source ipienv/bin/activate
|
||||
pip install --upgrade pip
|
||||
pip install ipi
|
||||
```
|
||||
|
||||
For further information and other methods of installing i-PI,
|
||||
please consult the [i-PI home page](https://ipi-code.org).
|
||||
@ -1,49 +0,0 @@
|
||||
i-PI V1.0 -- LAMMPS
|
||||
-------------------
|
||||
|
||||
A Python interface for ab initio path integral molecular dynamics simulations.
|
||||
i-PI is composed of a Python server (i-pi itself, that does not need to be
|
||||
compiled but only requires a relatively recent version of Python and Numpy)
|
||||
that propagates the (path integral) dynamics of the nuclei, and of an external
|
||||
code that acts as client and computes the electronic energy and forces.
|
||||
|
||||
This is typically a patched version of an electronic structure code, but a
|
||||
simple self-contained Fortran driver that implements Lennard-Jones and
|
||||
Silveira-Goldman potentials is included for test purposes.
|
||||
|
||||
This folder contains a stripped-down version to be used with LAMMPS, and might
|
||||
not contain all the features of the latest version. Please see
|
||||
[http://epfl-cosmo.github.io/gle4md/index.html?page=ipi] or
|
||||
[http://github.com/i-pi/i-pi] to obtain an up-to-date version.
|
||||
|
||||
|
||||
Quick Installation and Test
|
||||
---------------------------
|
||||
|
||||
Follow these instruction to test i-PI. These assume to be run from a Linux
|
||||
environment, with a recent version of Python, Numpy and gfortran, and that
|
||||
the terminal is initially in the i-pi package directory (the directory
|
||||
containing this file).
|
||||
|
||||
* Generate the driver code
|
||||
|
||||
::
|
||||
|
||||
$ cd driver
|
||||
$ make
|
||||
$ cd ..
|
||||
|
||||
* Run one of the examples
|
||||
|
||||
This will first start the wrapper in the background, redirecting the output on
|
||||
a log file, then run a couple of instances of the driver code and then follow
|
||||
the progress of the wrapper by monitoring the log file::
|
||||
|
||||
$ cd examples/tutorial/tutorial-1/
|
||||
$ ../../../i-pi tutorial-1.xml > log &
|
||||
$ ../../../drivers/driver.x -h localhost -p 31415 -m sg -o 15 &
|
||||
$ ../../../drivers/driver.x -h localhost -p 31415 -m sg -o 15 &
|
||||
$ tail -f log
|
||||
|
||||
The monitoring can be interrupted with ``CTRL+C`` when the run has finished (5000 steps)
|
||||
|
||||
@ -1,215 +0,0 @@
|
||||
! This performs the calculations necessary to run a Lennard-Jones (LJ)
|
||||
! simulation.
|
||||
!
|
||||
! Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
!
|
||||
! Permission is hereby granted, free of charge, to any person obtaining
|
||||
! a copy of this software and associated documentation files (the
|
||||
! "Software"), to deal in the Software without restriction, including
|
||||
! without limitation the rights to use, copy, modify, merge, publish,
|
||||
! distribute, sublicense, and/or sell copies of the Software, and to
|
||||
! permit persons to whom the Software is furnished to do so, subject to
|
||||
! the following conditions:
|
||||
!
|
||||
! The above copyright notice and this permission notice shall be included
|
||||
! in all copies or substantial portions of the Software.
|
||||
!
|
||||
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
!
|
||||
!
|
||||
! This contains the functions that calculate the potential, forces and
|
||||
! virial tensor of a single-component LJ system.
|
||||
! Includes functions which calculate the long-range correction terms for a
|
||||
! simulation with a sharp nearest-neighbour cut-off.
|
||||
!
|
||||
! Functions:
|
||||
! LJ_functions: Calculates the LJ pair potential and the magnitude of the
|
||||
! forces acting on a pair of atoms.
|
||||
! LJ_fij: Calculates the LJ pair potential and force vector for the
|
||||
! interaction of a pair of atoms.
|
||||
! LJ_longrange: Calculates the long range correction to the potential
|
||||
! and virial.
|
||||
! LJ_getall: Calculates the potential and virial of the system and the
|
||||
! forces acting on all the atoms.
|
||||
|
||||
MODULE LJ
|
||||
USE DISTANCE
|
||||
IMPLICIT NONE
|
||||
|
||||
DOUBLE PRECISION, PARAMETER :: four_tau_by_3 = 8.3775804095727811d0
|
||||
|
||||
CONTAINS
|
||||
|
||||
SUBROUTINE LJ_functions(sigma, eps, r, pot, force)
|
||||
! Calculates the magnitude of the LJ force and potential between
|
||||
! a pair of atoms at a given distance from each other.
|
||||
!
|
||||
! Args:
|
||||
! sigma: The LJ distance parameter.
|
||||
! eps: The LJ energy parameter.
|
||||
! r: The separation of the atoms.
|
||||
! pot: The LJ interaction potential.
|
||||
! force: The magnitude of the LJ force.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: sigma
|
||||
DOUBLE PRECISION, INTENT(IN) :: eps
|
||||
DOUBLE PRECISION, INTENT(IN) :: r
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot
|
||||
DOUBLE PRECISION, INTENT(OUT) :: force
|
||||
|
||||
DOUBLE PRECISION sigma_by_r6
|
||||
|
||||
sigma_by_r6 = sigma/r
|
||||
sigma_by_r6 = sigma_by_r6*sigma_by_r6*sigma_by_r6
|
||||
sigma_by_r6 = sigma_by_r6*sigma_by_r6
|
||||
|
||||
pot = 4*eps*(sigma_by_r6*(sigma_by_r6 - 1))
|
||||
force = 24*eps*(sigma_by_r6*(2*sigma_by_r6 - 1)/r)
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE LJ_fij(sigma, eps, rij, r, pot, fij)
|
||||
! This calculates the LJ potential energy and the magnitude and
|
||||
! direction of the force acting on a pair of atoms.
|
||||
!
|
||||
! Args:
|
||||
! sigma: The LJ distance parameter.
|
||||
! eps: The LJ energy parameter.
|
||||
! rij: The vector joining the two atoms.
|
||||
! r: The separation of the two atoms.
|
||||
! pot: The LJ interaction potential.
|
||||
! fij: The LJ force vector.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: sigma
|
||||
DOUBLE PRECISION, INTENT(IN) :: eps
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(IN) :: rij
|
||||
DOUBLE PRECISION, INTENT(IN) :: r
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(OUT) :: fij
|
||||
|
||||
DOUBLE PRECISION f_tot
|
||||
|
||||
CALL LJ_functions(sigma, eps, r, pot, f_tot)
|
||||
fij = f_tot*rij/r
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE LJ_longrange(rc, sigma, eps, natoms, volume, pot_lr, vir_lr)
|
||||
! Calculates the long range correction to the total potential and
|
||||
! virial pressure.
|
||||
!
|
||||
! Uses the tail correction for a sharp cut-off, with no smoothing
|
||||
! function, as derived in Martyna and Hughes, Journal of Chemical
|
||||
! Physics, 110, 3275, (1999).
|
||||
!
|
||||
! Args:
|
||||
! rc: The cut-off radius.
|
||||
! sigma: The LJ distance parameter.
|
||||
! eps: The LJ energy parameter.
|
||||
! natoms: The number of atoms in the system.
|
||||
! volume: The volume of the system box.
|
||||
! pot_lr: The tail correction to the LJ interaction potential.
|
||||
! vir_lr: The tail correction to the LJ virial pressure.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: rc
|
||||
DOUBLE PRECISION, INTENT(IN) :: sigma
|
||||
DOUBLE PRECISION, INTENT(IN) :: eps
|
||||
INTEGER, INTENT(IN) :: natoms
|
||||
DOUBLE PRECISION, INTENT(IN) :: volume
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot_lr
|
||||
DOUBLE PRECISION, INTENT(OUT) :: vir_lr
|
||||
|
||||
DOUBLE PRECISION sbyr, s3byr3, s6byr3, s6byr6, prefactor
|
||||
|
||||
sbyr = sigma/rc
|
||||
s3byr3 = sbyr*sbyr*sbyr
|
||||
s6byr6 = s3byr3*s3byr3
|
||||
prefactor = four_tau_by_3*natoms*natoms*eps/volume
|
||||
prefactor = prefactor*s3byr3*sigma*sigma*sigma
|
||||
|
||||
pot_lr = prefactor*(s6byr6/3-1)
|
||||
vir_lr = prefactor*(s6byr6-1) + pot_lr
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE LJ_getall(rc, sigma, eps, natoms, atoms, cell_h, cell_ih, index_list, n_list, pot, forces, virial)
|
||||
! Calculates the LJ potential energy and virial and the forces
|
||||
! acting on all the atoms.
|
||||
!
|
||||
! Args:
|
||||
! rc: The cut-off radius.
|
||||
! sigma: The LJ distance parameter.
|
||||
! eps: The LJ energy parameter.
|
||||
! natoms: The number of atoms in the system.
|
||||
! atoms: A vector holding all the atom positions.
|
||||
! cell_h: The simulation box cell vector matrix.
|
||||
! cell_ih: The inverse of the simulation box cell vector matrix.
|
||||
! index_list: A array giving the last index of n_list that
|
||||
! gives the neighbours of a given atom.
|
||||
! n_list: An array giving the indices of the atoms that neighbour
|
||||
! the atom determined by index_list.
|
||||
! pot: The total potential energy of the system.
|
||||
! forces: An array giving the forces acting on all the atoms.
|
||||
! virial: The virial tensor, not divided by the volume.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: rc
|
||||
DOUBLE PRECISION, INTENT(IN) :: sigma
|
||||
DOUBLE PRECISION, INTENT(IN) :: eps
|
||||
INTEGER, INTENT(IN) :: natoms
|
||||
DOUBLE PRECISION, DIMENSION(natoms,3), INTENT(IN) :: atoms
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_h
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_ih
|
||||
INTEGER, DIMENSION(natoms), INTENT(IN) :: index_list
|
||||
INTEGER, DIMENSION(natoms*(natoms-1)/2), INTENT(IN) :: n_list
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot
|
||||
DOUBLE PRECISION, DIMENSION(natoms,3), INTENT(OUT) :: forces
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(OUT) :: virial
|
||||
|
||||
INTEGER i, j, k, l, start
|
||||
DOUBLE PRECISION, DIMENSION(3) :: fij, rij
|
||||
DOUBLE PRECISION r2, pot_ij, pot_lr, vir_lr, volume
|
||||
|
||||
forces = 0.0d0
|
||||
pot = 0.0d0
|
||||
virial = 0.0d0
|
||||
|
||||
start = 1
|
||||
|
||||
DO i = 1, natoms - 1
|
||||
! Only loops over the neighbour list, not all the atoms.
|
||||
DO j = start, index_list(i)
|
||||
CALL vector_separation(cell_h, cell_ih, atoms(i,:), atoms(n_list(j),:), rij, r2)
|
||||
IF (r2 < rc*rc) THEN ! Only calculates contributions between neighbouring particles.
|
||||
CALL LJ_fij(sigma, eps, rij, sqrt(r2), pot_ij, fij)
|
||||
|
||||
forces(i,:) = forces(i,:) + fij
|
||||
forces(n_list(j),:) = forces(n_list(j),:) - fij
|
||||
pot = pot + pot_ij
|
||||
DO k = 1, 3
|
||||
DO l = k, 3
|
||||
! Only the upper triangular elements calculated.
|
||||
virial(k,l) = virial(k,l) + fij(k)*rij(l)
|
||||
ENDDO
|
||||
ENDDO
|
||||
ENDIF
|
||||
ENDDO
|
||||
start = index_list(i) + 1
|
||||
ENDDO
|
||||
|
||||
! Assuming an upper-triangular vector matrix for the simulation box.
|
||||
volume = cell_h(1,1)*cell_h(2,2)*cell_h(3,3)
|
||||
CALL LJ_longrange(rc, sigma, eps, natoms, volume, pot_lr, vir_lr)
|
||||
pot = pot + pot_lr
|
||||
DO k = 1, 3
|
||||
virial(k,k) = virial(k,k) + vir_lr
|
||||
ENDDO
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
END MODULE
|
||||
@ -1,42 +0,0 @@
|
||||
# Makefile for the driver tests
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
.PHONY: all
|
||||
|
||||
SOURCES=$(shell ls *.f90)
|
||||
MODULES=distance.f90 LJ.f90 SG.f90
|
||||
OBJECTS=$(SOURCES:.f90=.o) sockets.o
|
||||
all: modules sockets.o driver.x
|
||||
|
||||
modules: $(MODULES)
|
||||
gfortran -O3 -c $(MODULES)
|
||||
|
||||
sockets.o: sockets.c
|
||||
gcc -c -o sockets.o sockets.c
|
||||
|
||||
driver.x: $(OBJECTS)
|
||||
gfortran -O3 -o driver.x $(OBJECTS)
|
||||
|
||||
%.o: %.f90
|
||||
gfortran -O3 -c $<
|
||||
|
||||
clean:
|
||||
rm *.o *.mod *.x
|
||||
@ -1,14 +0,0 @@
|
||||
-- Driver code directory --
|
||||
|
||||
* This gives simple test driver codes.
|
||||
|
||||
* Files:
|
||||
- LJ.f90: Calculates the Lennard-Jones potential/forces/virial.
|
||||
- SG.f90: Calculates the Silvera-Goldman potential/forces/virial.
|
||||
- distance.f90: Deals with calculating the separation between atoms and
|
||||
the neighbour list calculation.
|
||||
- sockets.c: Contains the functions to create the client socket and read from
|
||||
and write to it.
|
||||
- driver.f90: Socket interface for the driver codes.
|
||||
- Makefile: A makefile that which compiles all the fortran code as
|
||||
necessary.
|
||||
@ -1,283 +0,0 @@
|
||||
! This performs the calculations necessary to run a simulation using a
|
||||
! Silvera-Goldman (SG) potential for para-hydrogen. See I. Silvera and V.
|
||||
! Goldman, J. Chem. Phys., 69, 4209 (1978).
|
||||
!
|
||||
! Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
!
|
||||
! Permission is hereby granted, free of charge, to any person obtaining
|
||||
! a copy of this software and associated documentation files (the
|
||||
! "Software"), to deal in the Software without restriction, including
|
||||
! without limitation the rights to use, copy, modify, merge, publish,
|
||||
! distribute, sublicense, and/or sell copies of the Software, and to
|
||||
! permit persons to whom the Software is furnished to do so, subject to
|
||||
! the following conditions:
|
||||
!
|
||||
! The above copyright notice and this permission notice shall be included
|
||||
! in all copies or substantial portions of the Software.
|
||||
!
|
||||
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
!
|
||||
!
|
||||
! This contains the functions that calculate the potential, forces and
|
||||
! virial tensor of liquid para-hydrogen
|
||||
! Includes functions which calculate the long-range correction terms for a
|
||||
! simulation with a sharp nearest-neighbour cut-off.
|
||||
!
|
||||
! Functions:
|
||||
! f_c: Calculates the damping function for the dispersive interactions
|
||||
! at short range.
|
||||
! exp_func: Calculates the short range repulsive part of the SG potential.
|
||||
! SG_functions: Calculates the SG pair potential and the magnitude of the
|
||||
! forces acting on a pair of atoms.
|
||||
! SG_fij: Calculates the SG pair potential and force vector for the
|
||||
! interaction of a pair of atoms.
|
||||
! SG_longrange: Calculates the long range correction to the potential
|
||||
! and virial.
|
||||
! SG_getall: Calculates the potential and virial of the system and the
|
||||
! forces acting on all the atoms.
|
||||
|
||||
MODULE SG
|
||||
USE DISTANCE
|
||||
IMPLICIT NONE
|
||||
|
||||
! Parameters of the SG potential. This potential is of the form:
|
||||
! V(r) = exp(alpha - beta*r - delta*r**2) -
|
||||
! (C_6/r**6 + C_8/r**8 - C_9/r**9 + C_10/r**10)*f_c(r)
|
||||
! where f_c(r) = exp(-(rc_exp/r - 1)**2) if r <= rc_exp
|
||||
! = 1 otherwise
|
||||
DOUBLE PRECISION, PARAMETER :: tau = 6.2831853071795862d0 !If you don't know why I used this name, you're not a real nerd
|
||||
DOUBLE PRECISION, PARAMETER :: alpha = 1.713d0
|
||||
DOUBLE PRECISION, PARAMETER :: beta = 1.5671d0
|
||||
DOUBLE PRECISION, PARAMETER :: delta = 0.00993d0
|
||||
DOUBLE PRECISION, PARAMETER :: delta_diff = delta*2.0d0
|
||||
DOUBLE PRECISION, PARAMETER :: rc_exp = 8.32d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_6 = 12.14d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_8 = 215.2d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_9 = 143.1d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_10 = 4813.9d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_6_diff = C_6*6d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_8_diff = C_8*8d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_9_diff = C_9*9d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_10_diff = C_10*10d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_6_int = C_6/3d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_8_int = C_8/5d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_9_int = C_9/6d0
|
||||
DOUBLE PRECISION, PARAMETER :: C_10_int = C_10/7d0
|
||||
|
||||
CONTAINS
|
||||
|
||||
SUBROUTINE f_c(r, long_range, long_range_diff)
|
||||
! Calculates the damping function for the dispersive interactions
|
||||
! at short range.
|
||||
!
|
||||
! Args:
|
||||
! r: The separation of the atoms.
|
||||
! long_range: The value of the damping function.
|
||||
! long_range_diff: The differential of the damping function
|
||||
! with respect to r.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: r
|
||||
DOUBLE PRECISION, INTENT(OUT) :: long_range
|
||||
DOUBLE PRECISION, INTENT(OUT) :: long_range_diff
|
||||
|
||||
DOUBLE PRECISION dist_frac
|
||||
|
||||
IF (r > rc_exp) THEN
|
||||
long_range = 1.0d0
|
||||
long_range_diff = 0.0d0
|
||||
ELSE
|
||||
dist_frac = rc_exp/r - 1.0d0
|
||||
long_range = dexp(-(dist_frac)**2)
|
||||
long_range_diff = 2.0d0*dist_frac*rc_exp*long_range/(r*r)
|
||||
END IF
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE exp_func(r, pot, force)
|
||||
! Calculates the repulsive part of the SG force and potential
|
||||
! between a pair of atoms at a given distance from each other.
|
||||
!
|
||||
! Args:
|
||||
! r: The separation of the atoms.
|
||||
! pot: The repulsive part of the potential energy.
|
||||
! force: The magnitude of the repulsive part of the force.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: r
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot
|
||||
DOUBLE PRECISION, INTENT(OUT) :: force
|
||||
|
||||
pot = dexp(alpha - r*(beta + delta*r))
|
||||
force = (beta + delta_diff*r)*pot
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE SG_functions(r, pot, force)
|
||||
! Calculates the magnitude of the SG force and potential between
|
||||
! a pair of atoms at a given distance from each other.
|
||||
!
|
||||
! Args:
|
||||
! r: The separation of the atoms.
|
||||
! pot: The SG interaction potential.
|
||||
! force: The magnitude of the SG force.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: r
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot
|
||||
DOUBLE PRECISION, INTENT(OUT) :: force
|
||||
|
||||
DOUBLE PRECISION long_range, long_range_diff, disp, disp_diff, exp_pot, exp_force
|
||||
DOUBLE PRECISION onr3, onr6, onr9, onr10
|
||||
|
||||
onr3 = 1/(r*r*r)
|
||||
onr6 = onr3*onr3
|
||||
onr9 = onr6*onr3
|
||||
onr10 = onr9/r
|
||||
|
||||
CALL exp_func(r, exp_pot, exp_force)
|
||||
CALL f_c(r, long_range, long_range_diff)
|
||||
|
||||
disp = -(C_6*onr6 + C_8*onr9*r - C_9*onr9 + C_10*onr10)
|
||||
disp_diff = (C_6_diff*onr6/r + C_8_diff*onr9 - C_9_diff*onr10 + C_10_diff*onr10/r)
|
||||
|
||||
pot = exp_pot + disp*long_range
|
||||
force = exp_force - disp_diff*long_range - disp*long_range_diff
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE SG_fij(rij, r, pot, fij)
|
||||
! This calculates the SG potential energy and the magnitude and
|
||||
! direction of the force acting on a pair of atoms.
|
||||
!
|
||||
! Args:
|
||||
! rij: The vector joining the two atoms.
|
||||
! r: The separation of the two atoms.
|
||||
! pot: The SG interaction potential.
|
||||
! fij: The SG force vector.
|
||||
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(IN) :: rij
|
||||
DOUBLE PRECISION, INTENT(IN) :: r
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(OUT) :: fij
|
||||
|
||||
DOUBLE PRECISION f_tot
|
||||
|
||||
CALL SG_functions(r, pot, f_tot)
|
||||
fij = f_tot*rij/r
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE SG_longrange(rc, natoms, volume, pot_lr, vir_lr)
|
||||
! Calculates the long range correction to the total potential and
|
||||
! virial pressure.
|
||||
!
|
||||
! Uses the tail correction for a sharp cut-off, with no smoothing
|
||||
! function, as derived in Martyna and Hughes, Journal of Chemical
|
||||
! Physics, 110, 3275, (1999).
|
||||
!
|
||||
! Note that we will assume that rc > rc_exp, and that
|
||||
! exp(alpha - beta*rc - delta*rc**2) << 0, so we can neglect the
|
||||
! contribution of the repulsive potential and the dispersion
|
||||
! damping function in the long range correction terms.
|
||||
!
|
||||
! Args:
|
||||
! rc: The cut-off radius.
|
||||
! natoms: The number of atoms in the system.
|
||||
! volume: The volume of the system box.
|
||||
! pot_lr: The tail correction to the SG interaction potential.
|
||||
! vir_lr: The tail correction to the SG virial pressure.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: rc
|
||||
INTEGER, INTENT(IN) :: natoms
|
||||
DOUBLE PRECISION, INTENT(IN) :: volume
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot_lr
|
||||
DOUBLE PRECISION, INTENT(OUT) :: vir_lr
|
||||
|
||||
DOUBLE PRECISION onr3, onr5, onr6, onr7, prefactor
|
||||
|
||||
onr3 = 1/(rc*rc*rc)
|
||||
onr6 = onr3*onr3
|
||||
onr5 = onr6*rc
|
||||
onr7 = onr6/rc
|
||||
prefactor = tau*natoms*natoms/volume
|
||||
|
||||
pot_lr = prefactor*(-C_6_int*onr3 - C_8_int*onr5 + C_9_int*onr6 - C_10_int*onr7)
|
||||
vir_lr = prefactor*(-C_6*onr3 - C_8*onr5 + C_9*onr6 - C_10*onr7)/3 + pot_lr
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE SG_getall(rc, natoms, atoms, cell_h, cell_ih, index_list, n_list, pot, forces, virial)
|
||||
! Calculates the SG potential energy and virial and the forces
|
||||
! acting on all the atoms.
|
||||
!
|
||||
! Args:
|
||||
! rc: The cut-off radius.
|
||||
! natoms: The number of atoms in the system.
|
||||
! atoms: A vector holding all the atom positions.
|
||||
! cell_h: The simulation box cell vector matrix.
|
||||
! cell_ih: The inverse of the simulation box cell vector matrix.
|
||||
! index_list: A array giving the last index of n_list that
|
||||
! gives the neighbours of a given atom.
|
||||
! n_list: An array giving the indices of the atoms that neighbour
|
||||
! the atom determined by index_list.
|
||||
! pot: The total potential energy of the system.
|
||||
! forces: An array giving the forces acting on all the atoms.
|
||||
! virial: The virial tensor, not divided by the volume.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: rc
|
||||
INTEGER, INTENT(IN) :: natoms
|
||||
DOUBLE PRECISION, DIMENSION(natoms,3), INTENT(IN) :: atoms
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_h
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_ih
|
||||
INTEGER, DIMENSION(natoms), INTENT(IN) :: index_list
|
||||
INTEGER, DIMENSION(natoms*(natoms-1)/2), INTENT(IN) :: n_list
|
||||
DOUBLE PRECISION, INTENT(OUT) :: pot
|
||||
DOUBLE PRECISION, DIMENSION(natoms,3), INTENT(OUT) :: forces
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(OUT) :: virial
|
||||
|
||||
INTEGER i, j, k, l, start
|
||||
DOUBLE PRECISION, DIMENSION(3) :: fij, rij
|
||||
DOUBLE PRECISION r2, pot_ij, pot_lr, vir_lr, volume
|
||||
|
||||
forces = 0.0d0
|
||||
pot = 0.0d0
|
||||
virial = 0.0d0
|
||||
|
||||
start = 1
|
||||
|
||||
DO i = 1, natoms - 1
|
||||
! Only loops over the neighbour list, not all the atoms.
|
||||
DO j = start, index_list(i)
|
||||
CALL vector_separation(cell_h, cell_ih, atoms(i,:), atoms(n_list(j),:), rij, r2)
|
||||
IF (r2 < rc*rc) THEN ! Only calculates contributions between neighbouring particles.
|
||||
CALL SG_fij(rij, sqrt(r2), pot_ij, fij)
|
||||
|
||||
forces(i,:) = forces(i,:) + fij
|
||||
forces(n_list(j),:) = forces(n_list(j),:) - fij
|
||||
pot = pot + pot_ij
|
||||
DO k = 1, 3
|
||||
DO l = k, 3
|
||||
! Only the upper triangular elements calculated.
|
||||
virial(k,l) = virial(k,l) + fij(k)*rij(l)
|
||||
ENDDO
|
||||
ENDDO
|
||||
ENDIF
|
||||
ENDDO
|
||||
start = index_list(i) + 1
|
||||
ENDDO
|
||||
|
||||
! Assuming an upper-triangular vector matrix for the simulation box.
|
||||
volume = cell_h(1,1)*cell_h(2,2)*cell_h(3,3)
|
||||
CALL SG_longrange(rc, natoms, volume, pot_lr, vir_lr)
|
||||
pot = pot + pot_lr
|
||||
DO k = 1, 3
|
||||
virial(k,k) = virial(k,k) + vir_lr
|
||||
ENDDO
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
END MODULE
|
||||
@ -1,174 +0,0 @@
|
||||
! This contains the algorithms needed to calculate the distance between atoms.
|
||||
!
|
||||
! Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
!
|
||||
! Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
! of this software and associated documentation files (the "Software"), to deal
|
||||
! in the Software without restriction, including without limitation the rights
|
||||
! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
! copies of the Software, and to permit persons to whom the Software is
|
||||
! furnished to do so, subject to the following conditions:
|
||||
|
||||
! The above copyright notice and this permission notice shall be included in
|
||||
! all copies or substantial portions of the Software.
|
||||
|
||||
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
! THE SOFTWARE.
|
||||
!
|
||||
! Functions:
|
||||
! vector_separation: Calculates the vector separating two atoms.
|
||||
! separation: Calculates the square distance between two vectors.
|
||||
! nearest_neighbours: Generates arrays to calculate the pairs of atoms within
|
||||
! a certain radius of each other.
|
||||
|
||||
MODULE DISTANCE
|
||||
IMPLICIT NONE
|
||||
|
||||
CONTAINS
|
||||
|
||||
SUBROUTINE vector_separation(cell_h, cell_ih, ri, rj, rij, r2)
|
||||
! Calculates the vector separating two atoms.
|
||||
!
|
||||
! Note that minimum image convention is used, so only the image of
|
||||
! atom j that is the shortest distance from atom i is considered.
|
||||
!
|
||||
! Also note that while this may not work if the simulation
|
||||
! box is highly skewed from orthorhombic, as
|
||||
! in this case it is possible to return a distance less than the
|
||||
! nearest neighbour distance. However, this will not be of
|
||||
! importance unless the cut-off radius is more than half the
|
||||
! width of the shortest face-face distance of the simulation box,
|
||||
! which should never be the case.
|
||||
!
|
||||
! Args:
|
||||
! cell_h: The simulation box cell vector matrix.
|
||||
! cell_ih: The inverse of the simulation box cell vector matrix.
|
||||
! ri: The position vector of atom i.
|
||||
! rj: The position vector of atom j
|
||||
! rij: The vector separating atoms i and j.
|
||||
! r2: The square of the distance between atoms i and j.
|
||||
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_h
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_ih
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(IN) :: ri
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(IN) :: rj
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(OUT) :: rij
|
||||
DOUBLE PRECISION, INTENT(OUT) :: r2
|
||||
|
||||
INTEGER k
|
||||
DOUBLE PRECISION, DIMENSION(3) :: sij
|
||||
! The separation in a basis where the simulation box
|
||||
! is a unit cube.
|
||||
|
||||
sij = matmul(cell_ih, ri - rj)
|
||||
DO k = 1, 3
|
||||
! Finds the smallest separation of all the images of atom i and j
|
||||
sij(k) = sij(k) - dnint(sij(k))
|
||||
ENDDO
|
||||
rij = matmul(cell_h, sij)
|
||||
r2 = dot_product(rij,rij)
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE separation(cell_h, cell_ih, ri, rj, r2)
|
||||
! Calculates the squared distance between two position vectors.
|
||||
!
|
||||
! Note that minimum image convention is used, so only the image of
|
||||
! atom j that is the shortest distance from atom i is considered.
|
||||
!
|
||||
! Also note that while this may not work if the simulation
|
||||
! box is highly skewed from orthorhombic, as
|
||||
! in this case it is possible to return a distance less than the
|
||||
! nearest neighbour distance. However, this will not be of
|
||||
! importance unless the cut-off radius is more than half the
|
||||
! width of the shortest face-face distance of the simulation box,
|
||||
! which should never be the case.
|
||||
!
|
||||
! Args:
|
||||
! cell_h: The simulation box cell vector matrix.
|
||||
! cell_ih: The inverse of the simulation box cell vector matrix.
|
||||
! ri: The position vector of atom i.
|
||||
! rj: The position vector of atom j
|
||||
! r2: The square of the distance between atoms i and j.
|
||||
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_h
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_ih
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(IN) :: ri
|
||||
DOUBLE PRECISION, DIMENSION(3), INTENT(IN) :: rj
|
||||
DOUBLE PRECISION, INTENT(OUT) :: r2
|
||||
|
||||
INTEGER k
|
||||
! The separation in a basis where the simulation box
|
||||
! is a unit cube.
|
||||
DOUBLE PRECISION, DIMENSION(3) :: sij
|
||||
DOUBLE PRECISION, DIMENSION(3) :: rij
|
||||
|
||||
sij = matmul(cell_ih, ri - rj)
|
||||
DO k = 1, 3
|
||||
! Finds the smallest separation of all the images of atom i and j
|
||||
sij(k) = sij(k) - dnint(sij(k))
|
||||
ENDDO
|
||||
rij = matmul(cell_h, sij)
|
||||
r2 = dot_product(rij, rij)
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
SUBROUTINE nearest_neighbours(rn, natoms, atoms, cell_h, cell_ih, index_list, n_list)
|
||||
! Creates a list of all the pairs of atoms that are closer together
|
||||
! than a certain distance.
|
||||
!
|
||||
! This takes all the positions, and calculates which ones are
|
||||
! shorter than the distance rn. This creates two vectors, index_list
|
||||
! and n_list. index_list(i) gives the last index of n_list that
|
||||
! corresponds to a neighbour of atom i.
|
||||
!
|
||||
!
|
||||
! Args:
|
||||
! rn: The nearest neighbour list cut-off parameter. This should
|
||||
! be larger than the potential cut-off radius.
|
||||
! natoms: The number of atoms in the system.
|
||||
! atoms: A vector holding all the atom positions.
|
||||
! cell_h: The simulation box cell vector matrix.
|
||||
! cell_ih: The inverse of the simulation box cell vector matrix.
|
||||
! index_list: A array giving the last index of n_list that
|
||||
! gives the neighbours of a given atom. Essentially keeps
|
||||
! track of how many atoms neighbour a given atom.
|
||||
! n_list: An array giving the indices of the atoms that neighbour
|
||||
! the atom determined by index_list. Essentially keeps track
|
||||
! of which atoms neighbour a given atom.
|
||||
|
||||
DOUBLE PRECISION, INTENT(IN) :: rn
|
||||
INTEGER, INTENT(IN) :: natoms
|
||||
DOUBLE PRECISION, DIMENSION(:,:), INTENT(IN) :: atoms
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_h
|
||||
DOUBLE PRECISION, DIMENSION(3,3), INTENT(IN) :: cell_ih
|
||||
INTEGER, DIMENSION(natoms), INTENT(OUT) :: index_list
|
||||
INTEGER, DIMENSION(natoms*(natoms-1)/2), INTENT(OUT) :: n_list
|
||||
|
||||
INTEGER :: i, j
|
||||
DOUBLE PRECISION r2
|
||||
|
||||
index_list(1) = 0
|
||||
|
||||
DO i = 1, natoms - 1
|
||||
DO j = i + 1, natoms
|
||||
CALL separation(cell_h, cell_ih, atoms(i,:), atoms(j,:), r2)
|
||||
IF (r2 < rn*rn) THEN
|
||||
! We have found an atom that neighbours atom i, so the
|
||||
! i-th index of index_list is incremented by one, and a new
|
||||
! entry is added to n_list.
|
||||
index_list(i) = index_list(i) + 1
|
||||
n_list(index_list(i)) = j
|
||||
ENDIF
|
||||
ENDDO
|
||||
index_list(i+1) = index_list(i)
|
||||
ENDDO
|
||||
|
||||
END SUBROUTINE
|
||||
|
||||
END MODULE
|
||||
@ -1,309 +0,0 @@
|
||||
! The main program which runs our driver test case potentials
|
||||
!
|
||||
! Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
!
|
||||
! Permission is hereby granted, free of charge, to any person obtaining
|
||||
! a copy of this software and associated documentation files (the
|
||||
! "Software"), to deal in the Software without restriction, including
|
||||
! without limitation the rights to use, copy, modify, merge, publish,
|
||||
! distribute, sublicense, and/or sell copies of the Software, and to
|
||||
! permit persons to whom the Software is furnished to do so, subject to
|
||||
! the following conditions:
|
||||
!
|
||||
! The above copyright notice and this permission notice shall be included
|
||||
! in all copies or substantial portions of the Software.
|
||||
!
|
||||
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
!
|
||||
!
|
||||
! Currently the potentials implemented are the Lennard-Jones
|
||||
! potential, the Silvera-Goldman para-hydrogen potential and
|
||||
! the ideal gas (i.e. no interaction at all)
|
||||
|
||||
PROGRAM DRIVER
|
||||
USE LJ
|
||||
USE SG
|
||||
IMPLICIT NONE
|
||||
|
||||
! SOCKET VARIABLES
|
||||
INTEGER, PARAMETER :: MSGLEN=12 ! length of the headers of the driver/wrapper communication protocol
|
||||
INTEGER socket, inet, port ! socket ID & address of the server
|
||||
CHARACTER*1024 :: host
|
||||
|
||||
! COMMAND LINE PARSING
|
||||
CHARACTER*1024 :: cmdbuffer, vops
|
||||
INTEGER ccmd, vstyle
|
||||
LOGICAL verbose
|
||||
INTEGER commas(4), par_count ! stores the index of commas in the parameter string
|
||||
DOUBLE PRECISION vpars(4) ! array to store the parameters of the potential
|
||||
|
||||
! SOCKET COMMUNICATION BUFFERS
|
||||
CHARACTER*12 :: header
|
||||
LOGICAL :: isinit=.false., hasdata=.false.
|
||||
INTEGER cbuf
|
||||
CHARACTER*2048 :: initbuffer ! it's unlikely a string this large will ever be passed...
|
||||
DOUBLE PRECISION, ALLOCATABLE :: msgbuffer(:)
|
||||
|
||||
! PARAMETERS OF THE SYSTEM (CELL, ATOM POSITIONS, ...)
|
||||
DOUBLE PRECISION sigma, eps, rc, rn, ks ! potential parameters
|
||||
INTEGER nat
|
||||
DOUBLE PRECISION pot
|
||||
DOUBLE PRECISION, ALLOCATABLE :: atoms(:,:), forces(:,:)
|
||||
DOUBLE PRECISION cell_h(3,3), cell_ih(3,3), virial(3,3)
|
||||
DOUBLE PRECISION volume
|
||||
|
||||
! NEIGHBOUR LIST ARRAYS
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: n_list, index_list
|
||||
DOUBLE PRECISION init_volume, init_rc ! needed to correctly adjust the cut-off radius for variable cell dynamics
|
||||
DOUBLE PRECISION, ALLOCATABLE :: last_atoms(:,:) ! Holds the positions when the neighbour list is created
|
||||
DOUBLE PRECISION displacement ! Tracks how far each atom has moved since the last call of nearest_neighbours
|
||||
|
||||
INTEGER i
|
||||
|
||||
! parse the command line parameters
|
||||
! initialize defaults
|
||||
ccmd = 0
|
||||
inet = 1
|
||||
host = "localhost"//achar(0)
|
||||
port = 31415
|
||||
verbose = .false.
|
||||
par_count = 0
|
||||
vstyle = -1
|
||||
|
||||
DO i = 1, IARGC()
|
||||
CALL GETARG(i, cmdbuffer)
|
||||
IF (cmdbuffer == "-u") THEN ! flag for unix socket
|
||||
inet = 0
|
||||
ccmd = 0
|
||||
ELSEIF (cmdbuffer == "-h") THEN ! read the hostname
|
||||
ccmd = 1
|
||||
ELSEIF (cmdbuffer == "-p") THEN ! reads the port number
|
||||
ccmd = 2
|
||||
ELSEIF (cmdbuffer == "-m") THEN ! reads the style of the potential function
|
||||
ccmd = 3
|
||||
ELSEIF (cmdbuffer == "-o") THEN ! reads the parameters
|
||||
ccmd = 4
|
||||
ELSEIF (cmdbuffer == "-v") THEN ! flag for verbose standard output
|
||||
verbose = .true.
|
||||
ELSE
|
||||
IF (ccmd == 0) THEN
|
||||
WRITE(*,*) " Unrecognized command line argument", ccmd
|
||||
WRITE(*,*) " SYNTAX: driver.x [-u] -h hostname -p port -m [gas|lj|sg|harm] -o 'comma_separated_parameters' [-v] "
|
||||
WRITE(*,*) ""
|
||||
WRITE(*,*) " For LJ potential use -o sigma,epsilon,cutoff "
|
||||
WRITE(*,*) " For SG potential use -o cutoff "
|
||||
WRITE(*,*) " For 1D harmonic oscillator use -o k "
|
||||
WRITE(*,*) " For the ideal gas, no options needed! "
|
||||
CALL EXIT(-1)
|
||||
ENDIF
|
||||
IF (ccmd == 1) THEN
|
||||
host = trim(cmdbuffer)//achar(0)
|
||||
ELSEIF (ccmd == 2) THEN
|
||||
READ(cmdbuffer,*) port
|
||||
ELSEIF (ccmd == 3) THEN
|
||||
IF (trim(cmdbuffer) == "lj") THEN
|
||||
vstyle = 1
|
||||
ELSEIF (trim(cmdbuffer) == "sg") THEN
|
||||
vstyle = 2
|
||||
ELSEIF (trim(cmdbuffer) == "harm") THEN
|
||||
vstyle = 3
|
||||
ELSEIF (trim(cmdbuffer) == "gas") THEN
|
||||
vstyle = 0 ! ideal gas
|
||||
ELSE
|
||||
WRITE(*,*) " Unrecognized potential type ", trim(cmdbuffer)
|
||||
WRITE(*,*) " Use -m [gas|lj|sg|harm] "
|
||||
CALL EXIT(-1)
|
||||
ENDIF
|
||||
ELSEIF (ccmd == 4) THEN
|
||||
par_count = 1
|
||||
commas(1) = 0
|
||||
DO WHILE (index(cmdbuffer(commas(par_count)+1:), ',') > 0)
|
||||
commas(par_count + 1) = index(cmdbuffer(commas(par_count)+1:), ',') + commas(par_count)
|
||||
READ(cmdbuffer(commas(par_count)+1:commas(par_count + 1)-1),*) vpars(par_count)
|
||||
par_count = par_count + 1
|
||||
ENDDO
|
||||
READ(cmdbuffer(commas(par_count)+1:),*) vpars(par_count)
|
||||
ENDIF
|
||||
ccmd = 0
|
||||
ENDIF
|
||||
ENDDO
|
||||
|
||||
IF (vstyle == -1) THEN
|
||||
WRITE(*,*) " Error, type of potential not specified."
|
||||
WRITE(*,*) " SYNTAX: driver.x [-u] -h hostname -p port -m [gas|lj|sg|harm] -o 'comma_separated_parameters' [-v] "
|
||||
WRITE(*,*) ""
|
||||
WRITE(*,*) " For LJ potential use -o sigma,epsilon,cutoff "
|
||||
WRITE(*,*) " For SG potential use -o cutoff "
|
||||
WRITE(*,*) " For the ideal gas, no options needed! "
|
||||
CALL EXIT(-1)
|
||||
ELSEIF (vstyle == 0) THEN
|
||||
IF (par_count /= 0) THEN
|
||||
WRITE(*,*) "Error: no initialization string needed for ideal gas."
|
||||
CALL EXIT(-1)
|
||||
ENDIF
|
||||
isinit = .true.
|
||||
ELSEIF (vstyle == 1) THEN
|
||||
IF (par_count /= 3) THEN
|
||||
WRITE(*,*) "Error: parameters not initialized correctly."
|
||||
WRITE(*,*) "For LJ potential use -o sigma,epsilon,cutoff "
|
||||
CALL EXIT(-1) ! Note that if initialization from the wrapper is implemented this exit should be removed.
|
||||
ENDIF
|
||||
sigma = vpars(1)
|
||||
eps = vpars(2)
|
||||
rc = vpars(3)
|
||||
rn = rc*1.2
|
||||
isinit = .true.
|
||||
ELSEIF (vstyle == 2) THEN
|
||||
IF (par_count /= 1) THEN
|
||||
WRITE(*,*) "Error: parameters not initialized correctly."
|
||||
WRITE(*,*) "For SG potential use -o cutoff "
|
||||
CALL EXIT(-1) ! Note that if initialization from the wrapper is implemented this exit should be removed.
|
||||
ENDIF
|
||||
rc = vpars(1)
|
||||
rn = rc*1.2
|
||||
isinit = .true.
|
||||
ELSEIF (vstyle == 3) THEN
|
||||
IF (par_count /= 1) THEN
|
||||
WRITE(*,*) "Error: parameters not initialized correctly."
|
||||
WRITE(*,*) "For 1D harmonic potential use -o k "
|
||||
CALL EXIT(-1) ! Note that if initialization from the wrapper is implemented this exit should be removed.
|
||||
ENDIF
|
||||
ks = vpars(1)
|
||||
isinit = .true.
|
||||
ENDIF
|
||||
|
||||
IF (verbose) THEN
|
||||
WRITE(*,*) " DRIVER - Connecting to host ", trim(host)
|
||||
IF (inet > 0) THEN
|
||||
WRITE(*,*) " on port ", port, " using an internet socket."
|
||||
ELSE
|
||||
WRITE(*,*) " using an UNIX socket."
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
! Calls the interface to the C sockets to open a communication channel
|
||||
CALL open_socket(socket, inet, port, host)
|
||||
nat = -1
|
||||
DO WHILE (.true.) ! Loops forever (or until the wrapper ends!)
|
||||
|
||||
! Reads from the socket one message header
|
||||
CALL readbuffer(socket, header, MSGLEN)
|
||||
IF (verbose) WRITE(*,*) " Message from server: ", trim(header)
|
||||
|
||||
IF (trim(header) == "STATUS") THEN
|
||||
! The wrapper is inquiring on what we are doing
|
||||
IF (.not. isinit) THEN
|
||||
CALL writebuffer(socket,"NEEDINIT ",MSGLEN) ! Signals that we need initialization data
|
||||
ELSEIF (hasdata) THEN
|
||||
CALL writebuffer(socket,"HAVEDATA ",MSGLEN) ! Signals that we are done computing and can return forces
|
||||
ELSE
|
||||
CALL writebuffer(socket,"READY ",MSGLEN) ! We are idling and eager to compute something
|
||||
ENDIF
|
||||
ELSEIF (trim(header) == "INIT") THEN ! The driver is kindly providing a string for initialization
|
||||
CALL readbuffer(socket, cbuf, 4)
|
||||
CALL readbuffer(socket, initbuffer, cbuf)
|
||||
IF (verbose) WRITE(*,*) " Initializing system from wrapper, using ", trim(initbuffer)
|
||||
isinit=.true. ! We actually do nothing with this string, thanks anyway. Could be used to pass some information (e.g. the input parameters, or the index of the replica, from the driver
|
||||
ELSEIF (trim(header) == "POSDATA") THEN ! The driver is sending the positions of the atoms. Here is where we do the calculation!
|
||||
|
||||
! Parses the flow of data from the socket
|
||||
CALL readbuffer(socket, cell_h, 9*8) ! Cell matrix
|
||||
CALL readbuffer(socket, cell_ih, 9*8) ! Inverse of the cell matrix (so we don't have to invert it every time here)
|
||||
|
||||
! The wrapper uses atomic units for everything, and row major storage.
|
||||
! At this stage one should take care that everything is converted in the
|
||||
! units and storage mode used in the driver.
|
||||
cell_h = transpose(cell_h)
|
||||
cell_ih = transpose(cell_ih)
|
||||
! We assume an upper triangular cell-vector matrix
|
||||
volume = cell_h(1,1)*cell_h(2,2)*cell_h(3,3)
|
||||
|
||||
CALL readbuffer(socket, cbuf, 4) ! The number of atoms in the cell
|
||||
IF (nat < 0) THEN ! Assumes that the number of atoms does not change throughout a simulation, so only does this once
|
||||
nat = cbuf
|
||||
IF (verbose) WRITE(*,*) " Allocating buffer and data arrays, with ", nat, " atoms"
|
||||
ALLOCATE(msgbuffer(3*nat))
|
||||
ALLOCATE(atoms(nat,3))
|
||||
ALLOCATE(forces(nat,3))
|
||||
ENDIF
|
||||
|
||||
CALL readbuffer(socket, msgbuffer, nat*3*8)
|
||||
DO i = 1, nat
|
||||
atoms(i,:) = msgbuffer(3*(i-1)+1:3*i)
|
||||
ENDDO
|
||||
|
||||
IF (vstyle == 0) THEN ! ideal gas, so no calculation done
|
||||
pot = 0
|
||||
forces = 0
|
||||
virial = 0
|
||||
ELSEIF (vstyle == 3) THEN ! 1D harmonic potential, so only uses the first position variable
|
||||
pot = 0.5*ks*atoms(1,1)**2
|
||||
forces = 0
|
||||
forces(1,1) = -ks*atoms(1,1)
|
||||
virial = 0
|
||||
virial(1,1) = forces(1,1)*atoms(1,1)
|
||||
ELSE
|
||||
IF ((allocated(n_list) .neqv. .true.)) THEN
|
||||
IF (verbose) WRITE(*,*) " Allocating neighbour lists."
|
||||
ALLOCATE(n_list(nat*(nat-1)/2))
|
||||
ALLOCATE(index_list(nat))
|
||||
ALLOCATE(last_atoms(nat,3))
|
||||
CALL nearest_neighbours(rn, nat, atoms, cell_h, cell_ih, index_list, n_list)
|
||||
last_atoms = atoms
|
||||
init_volume = volume
|
||||
init_rc = rc
|
||||
ENDIF
|
||||
|
||||
! Checking to see if we need to re-calculate the neighbour list
|
||||
rc = init_rc*(volume/init_volume)**(1.0/3.0)
|
||||
DO i = 1, nat
|
||||
CALL separation(cell_h, cell_ih, atoms(i,:), last_atoms(i,:), displacement)
|
||||
! Note that displacement is the square of the distance moved by atom i since the last time the neighbour list was created.
|
||||
IF (4*displacement > (rn-rc)*(rn-rc)) THEN
|
||||
IF (verbose) WRITE(*,*) " Recalculating neighbour lists"
|
||||
CALL nearest_neighbours(rn, nat, atoms, cell_h, cell_ih, index_list, n_list)
|
||||
last_atoms = atoms
|
||||
rn = 1.2*rc
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
|
||||
IF (vstyle == 1) THEN
|
||||
CALL LJ_getall(rc, sigma, eps, nat, atoms, cell_h, cell_ih, index_list, n_list, pot, forces, virial)
|
||||
ELSEIF (vstyle == 2) THEN
|
||||
CALL SG_getall(rc, nat, atoms, cell_h, cell_ih, index_list, n_list, pot, forces, virial)
|
||||
ENDIF
|
||||
IF (verbose) WRITE(*,*) " Calculated energy is ", pot
|
||||
ENDIF
|
||||
hasdata = .true. ! Signal that we have data ready to be passed back to the wrapper
|
||||
ELSEIF (trim(header) == "GETFORCE") THEN ! The driver calculation is finished, it's time to send the results back to the wrapper
|
||||
|
||||
! Data must be re-formatted (and units converted) in the units and shapes used in the wrapper
|
||||
DO i = 1, nat
|
||||
msgbuffer(3*(i-1)+1:3*i) = forces(i,:)
|
||||
ENDDO
|
||||
virial = transpose(virial)
|
||||
|
||||
CALL writebuffer(socket,"FORCEREADY ",MSGLEN)
|
||||
CALL writebuffer(socket,pot,8) ! Writing the potential
|
||||
CALL writebuffer(socket,nat,4) ! Writing the number of atoms
|
||||
CALL writebuffer(socket,msgbuffer,3*nat*8) ! Writing the forces
|
||||
CALL writebuffer(socket,virial,9*8) ! Writing the virial tensor, NOT divided by the volume
|
||||
cbuf = 7 ! Size of the "extras" string
|
||||
CALL writebuffer(socket,cbuf,4) ! This would write out the "extras" string, but in this case we only use a dummy string.
|
||||
CALL writebuffer(socket,"nothing",7)
|
||||
|
||||
hasdata = .false.
|
||||
ELSE
|
||||
WRITE(*,*) " Unexpected header ", header
|
||||
CALL EXIT(-1)
|
||||
ENDIF
|
||||
ENDDO
|
||||
IF (nat > 0) DEALLOCATE(atoms, forces, msgbuffer)
|
||||
END PROGRAM
|
||||
@ -1,147 +0,0 @@
|
||||
/* A minimal wrapper for socket communication.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Contains both the functions that transmit data to the socket and read the data
|
||||
back out again once finished, and the function which opens the socket initially.
|
||||
Can be linked to a FORTRAN code that does not support sockets natively.
|
||||
|
||||
Functions:
|
||||
error: Prints an error message and then exits.
|
||||
open_socket_: Opens a socket with the required host server, socket type and
|
||||
port number.
|
||||
write_buffer_: Writes a string to the socket.
|
||||
read_buffer_: Reads data from the socket.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/un.h>
|
||||
#include <netdb.h>
|
||||
|
||||
void error(const char *msg)
|
||||
// Prints an error message and then exits.
|
||||
{ perror(msg); exit(-1); }
|
||||
|
||||
void open_socket_(int *psockfd, int* inet, int* port, char* host)
|
||||
/* Opens a socket.
|
||||
|
||||
Note that fortran passes an extra argument for the string length, but this is
|
||||
ignored here for C compatibility.
|
||||
|
||||
Args:
|
||||
psockfd: The id of the socket that will be created.
|
||||
inet: An integer that determines whether the socket will be an inet or unix
|
||||
domain socket. Gives unix if 0, inet otherwise.
|
||||
port: The port number for the socket to be created. Low numbers are often
|
||||
reserved for important channels, so use of numbers of 4 or more digits is
|
||||
recommended.
|
||||
host: The name of the host server.
|
||||
*/
|
||||
|
||||
{
|
||||
int sockfd, portno, n;
|
||||
struct hostent *server;
|
||||
|
||||
struct sockaddr * psock; int ssock;
|
||||
|
||||
if (*inet>0)
|
||||
{ // creates an internet socket
|
||||
struct sockaddr_in serv_addr; psock=(struct sockaddr *)&serv_addr; ssock=sizeof(serv_addr);
|
||||
sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sockfd < 0) error("Error opening socket");
|
||||
|
||||
server = gethostbyname(host);
|
||||
if (server == NULL)
|
||||
{
|
||||
fprintf(stderr, "Error opening socket: no such host %s \n", host);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
bzero((char *) &serv_addr, sizeof(serv_addr));
|
||||
serv_addr.sin_family = AF_INET;
|
||||
bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);
|
||||
serv_addr.sin_port = htons(*port);
|
||||
if (connect(sockfd, psock, ssock) < 0) error("Error opening socket: wrong host address, or broken connection");
|
||||
}
|
||||
else
|
||||
{ // creates a unix socket
|
||||
struct sockaddr_un serv_addr; psock=(struct sockaddr *)&serv_addr; ssock=sizeof(serv_addr);
|
||||
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||
bzero((char *) &serv_addr, sizeof(serv_addr));
|
||||
serv_addr.sun_family = AF_UNIX;
|
||||
strcpy(serv_addr.sun_path, "/tmp/ipi_");
|
||||
strcpy(serv_addr.sun_path+9, host);
|
||||
if (connect(sockfd, psock, ssock) < 0) error("Error opening socket: wrong host address, or broken connection");
|
||||
}
|
||||
|
||||
*psockfd=sockfd;
|
||||
}
|
||||
|
||||
void writebuffer_(int *psockfd, char *data, int* plen)
|
||||
/* Writes to a socket.
|
||||
|
||||
Args:
|
||||
psockfd: The id of the socket that will be written to.
|
||||
data: The data to be written to the socket.
|
||||
plen: The length of the data in bytes.
|
||||
*/
|
||||
|
||||
{
|
||||
int n;
|
||||
int sockfd=*psockfd;
|
||||
int len=*plen;
|
||||
|
||||
n = write(sockfd,data,len);
|
||||
if (n < 0) error("Error writing to socket: server has quit or connection broke");
|
||||
}
|
||||
|
||||
|
||||
void readbuffer_(int *psockfd, char *data, int* plen)
|
||||
/* Reads from a socket.
|
||||
|
||||
Args:
|
||||
psockfd: The id of the socket that will be read from.
|
||||
data: The storage array for data read from the socket.
|
||||
plen: The length of the data in bytes.
|
||||
*/
|
||||
|
||||
{
|
||||
int n, nr;
|
||||
int sockfd=*psockfd;
|
||||
int len=*plen;
|
||||
|
||||
n = nr = read(sockfd,data,len);
|
||||
|
||||
while (nr>0 && n<len )
|
||||
{ nr=read(sockfd,&data[n],len-n); n+=nr; }
|
||||
|
||||
if (n == 0) error("Error reading from socket: server has quit or connection broke");
|
||||
}
|
||||
|
||||
|
||||
@ -1,70 +0,0 @@
|
||||
# Makefile for the q-TIP4P-F examples
|
||||
#
|
||||
# Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
.PHONY: all clean graphene h2o-piglet_2 h2o-piglet_4 h2o-piglet_8 h2o-rpc h2o-pimd
|
||||
all: graphene h2o-piglet_2 h2o-piglet_4 h2o-piglet_8 h2o-rpc h2o-pimd
|
||||
|
||||
LAMMPS:=../../../../../src/lmp_ubuntu
|
||||
IPI:=../../../i-pi
|
||||
|
||||
define run_lammps
|
||||
for i in `seq 1 $1`; do \
|
||||
$(LAMMPS) < $2 & \
|
||||
done;
|
||||
endef
|
||||
-include make.in
|
||||
|
||||
graphene:
|
||||
cd graphene; $(IPI) input.xml & \
|
||||
sleep 20; \
|
||||
$(call run_lammps,4,in.kappa.Graphene) \
|
||||
wait
|
||||
|
||||
h2o-piglet_2:
|
||||
cd h2o-piglet.2; $(IPI) input.xml & sleep 5; \
|
||||
$(call run_lammps,2,in.water) \
|
||||
wait
|
||||
|
||||
h2o-piglet_4:
|
||||
cd h2o-piglet.4; $(IPI) input.xml & sleep 5; \
|
||||
$(call run_lammps,4,in.water) \
|
||||
wait
|
||||
|
||||
h2o-piglet_8:
|
||||
cd h2o-piglet.8; $(IPI) input.xml & sleep 5; \
|
||||
$(call run_lammps,4,in.water) \
|
||||
wait
|
||||
|
||||
h2o-pimd:
|
||||
cd h2o-pimd; $(IPI) input.xml & sleep 5; \
|
||||
$(call run_lammps,4,in.water) \
|
||||
wait
|
||||
|
||||
h2o-rpc:
|
||||
cd h2o-pimd-rpc; $(IPI) input.xml & sleep 5; \
|
||||
$(call run_lammps,4,in.water_shortrange) \
|
||||
$(call run_lammps,1,in.water_longrange) \
|
||||
wait
|
||||
|
||||
clean:
|
||||
rm -f */gle_lammps.* */RESTART */EXIT */log.lammps; \
|
||||
cd h2o-pimd; \
|
||||
rm -f RESTART EXIT log.lammps no_rpc.*; cd ..; \
|
||||
cd h2o-pimd-rpc; \
|
||||
rm -f RESTART EXIT log.lammps rpc.*; cd ..; \
|
||||
cd graphene; \
|
||||
rm -f graph.* RESTART EXIT log.lammps graphene.lammpstraj nohup.out; cd ..
|
||||
@ -1,70 +0,0 @@
|
||||
-- Examples of i-PI working with LAMMPS --
|
||||
|
||||
-- Example with Tersoff graphene potential --
|
||||
|
||||
Uses the Tersoff parameters of Lindsay and Broido PRB 81, 205441 (2010)
|
||||
to run a short simulation of graphene with the LAMMPS MD code.
|
||||
|
||||
-- Example with the q-TIP4P-F water potential --
|
||||
|
||||
* This gives an example of water with the q-TIP4P-F potential
|
||||
of Scott Habershon, Thomas E. Markland and David E. Manolopoulos,
|
||||
J. Chem. Phys., 131, 024501, (2009).
|
||||
|
||||
* State point: (N, V, T) = (216 water molecules, 43737 a_0**3, 298 K)
|
||||
|
||||
* This demonstrates the convergence of the kinetic and potential energy
|
||||
using the ring polymer contraction (RPC) method of Thomas E. Markland and
|
||||
David E. Manolopoulos, J. Chem. Phys. 129, 024105, (2008), and
|
||||
the PIGLET method of Michele Ceriotti and
|
||||
David Manolopoulos, Phys. Rev. Lett., 109, 100604, (2012).
|
||||
|
||||
|
||||
** Run the examples automatically:
|
||||
|
||||
* First, it is necessary to patch and compile LAMMPS, and create a make.in
|
||||
file containing the path to the executable and i-pi, e.g.
|
||||
|
||||
LAMMPS:=~/bin/lmp_serial
|
||||
IPI:=~/bin/i-pi
|
||||
|
||||
* The runs can be done automatically using the Makefile provided. The make
|
||||
targets are self-explanatory. To run the RPC example, for instance, just type:
|
||||
|
||||
$ make h2o-rpc
|
||||
|
||||
* To clean up output files:
|
||||
|
||||
$ make clean
|
||||
|
||||
|
||||
** Run the examples manually:
|
||||
|
||||
* Go back to the example directory and run
|
||||
|
||||
$ python path/i-pi input.xml
|
||||
|
||||
the wrapper will start and sit waiting on the UDS /tmp/ipi.
|
||||
|
||||
* Open a separate terminal and run the LAMMPS driver code using:
|
||||
|
||||
$ path/lammps/src/lmp_serial < in.water
|
||||
|
||||
For the RPC run, instead use:
|
||||
|
||||
$ path/lammps/src/lmp_serial < in.water_longrange
|
||||
$ path/lammps/src/lmp_serial < in.water_shortrange
|
||||
|
||||
You can run multiple instances of the code; it is so fast that parallel
|
||||
scaling won't be appreciable.
|
||||
|
||||
* If your system does not support Unix domain sockets, just set in input.xml
|
||||
<socket mode="unix"> <port> port_no </port>
|
||||
|
||||
To make the client socket connect, the in.water file should
|
||||
be changed so that it has the line:
|
||||
|
||||
fix 1 all driver hostname port_no
|
||||
|
||||
where hostname is the address the socket is binding to; either graphene, piglet_2,
|
||||
piglet_4, piglet_8, rpc_long, rpc_short or no_rpc depending on the run.
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,32 +0,0 @@
|
||||
units electron
|
||||
atom_style full
|
||||
|
||||
#pair_style lj/cut/coul/long 17.01
|
||||
pair_style lj/cut/tip4p/long 1 2 1 1 0.278072379 17.007
|
||||
#bond_style harmonic
|
||||
bond_style class2
|
||||
angle_style harmonic
|
||||
#kspace_style pppm 0.0001
|
||||
kspace_style pppm/tip4p 0.0001
|
||||
|
||||
read_data data.water
|
||||
pair_coeff * * 0 0
|
||||
pair_coeff 1 1 0.000295147 5.96946
|
||||
|
||||
neighbor 2.0 bin
|
||||
|
||||
timestep 0.00025
|
||||
|
||||
#velocity all create 298.0 2345187
|
||||
|
||||
#thermo_style multi
|
||||
#thermo 1
|
||||
|
||||
#fix 1 all nvt temp 298.0 298.0 30.0 tchain 1
|
||||
#fix 1 all nve
|
||||
fix 1 all ipi piglet_2 32344 unix
|
||||
|
||||
#dump 1 all xyz 25 dump.xyz
|
||||
|
||||
run 100000000
|
||||
|
||||
@ -1,37 +0,0 @@
|
||||
<simulation>
|
||||
<initialize nbeads='2'>
|
||||
<file mode='pdb'> water_298K.pdb </file>
|
||||
<velocities mode="thermal" units='kelvin'> 298 </velocities>
|
||||
</initialize>
|
||||
<output prefix='gle_lammps'>
|
||||
<properties stride='1' filename='out'> [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] </properties>
|
||||
<trajectory filename='pos' stride='20'> positions </trajectory>
|
||||
</output>
|
||||
<total_steps>500000</total_steps>
|
||||
<prng><seed>32344</seed></prng>
|
||||
<forces>
|
||||
<socket mode='unix'>
|
||||
<address>piglet_2</address>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='nm_gle'>
|
||||
<A shape='(2,9,9)'>
|
||||
[
|
||||
1.300513766690e-2, 9.078220950722e-6, 8.180522706851e-6, 1.196620464216e-5, 1.108609196233e-4, -8.941338246404e-4, 7.817382329484e-3, -1.206049888192e-2, -5.215913547478e-2, -9.756343549369e-6, 2.131200614277e-7, 2.972243541454e-6, -4.459298032276e-6, 2.177011229810e-7, 4.960251269751e-7, -2.083064995647e-6, -7.004617074013e-6, 2.299410255689e-5, -1.851243089560e-6, -2.972243541454e-6, 1.956991859501e-6, 1.742357040415e-6, -2.082265548357e-6, -1.760771137012e-6, -3.733162998255e-6, -3.711884630223e-5, -3.625483838477e-5, 1.492481502899e-5, 4.459298032276e-6, -1.742357040415e-6, 5.092476869103e-6, 2.033910859306e-6, 5.856365217540e-7, -3.020170664006e-6, 1.868034354962e-5, -5.049113665348e-6, 1.059383195368e-4, -2.177011229810e-7, 2.082265548357e-6, -2.033910859306e-6, 5.467813757620e-5, -6.684243951800e-6, -9.770331146786e-7, -2.159991642805e-4, 4.667176340213e-4, -7.611448585233e-4, -4.960251269751e-7, 1.760771137012e-6, -5.856365217540e-7, 6.684243951800e-6, 6.616597356640e-4, -1.637891086976e-6, -2.056652206438e-4, 2.960975881160e-4, 7.659946833472e-3, 2.083064995647e-6, 3.733162998255e-6, 3.020170664006e-6, 9.770331146786e-7, 1.637891086976e-6, 6.390977118535e-3, -6.246090363901e-5, 5.054994461623e-4, -1.078245092236e-2, 7.004617074013e-6, 3.711884630223e-5, -1.868034354962e-5, 2.159991642805e-4, 2.056652206438e-4, 6.246090363901e-5, 1.730397061203e-1, 1.004651317366e-4, -5.467410217589e-2, -2.299410255689e-5, 3.625483838477e-5, 5.049113665348e-6, -4.667176340213e-4, -2.960975881160e-4, -5.054994461623e-4, -1.004651317366e-4, 1.795223909984e+0,
|
||||
3.661508781828e-6, 6.586380415542e-3, 0.000000000000e+0, 1.048798625055e-2, 0.000000000000e+0, 5.235465741104e-3, 0.000000000000e+0, 7.227324741917e-5, 0.000000000000e+0, -6.586380415542e-3, 1.472841224644e-1, 3.389091001693e-2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -3.389091001693e-2, 1.735946745861e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.048798625055e-2, 0.000000000000e+0, 0.000000000000e+0, 1.692225827878e-2, 4.099176875073e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.099176875073e-3, 1.735946745861e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -5.235465741104e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 6.199421250931e-2, 1.895288863876e-2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.895288863876e-2, 1.735946745861e-14, 0.000000000000e+0, 0.000000000000e+0, -7.227324741917e-5, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 6.363529537929e-3, 1.124668303030e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.124668303030e-3, 1.735946745861e-14
|
||||
]
|
||||
</A>
|
||||
<C shape='(2,9,9)' units='kelvin'>
|
||||
[
|
||||
5.960000000000e+2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 5.960000000000e+2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 5.960000000000e+2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 5.960000000000e+2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 5.960000000000e+2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 5.960000000000e+2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 5.960000000000e+2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 5.960000000000e+2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 5.960000000000e+2,
|
||||
2.328214199148e+3, -1.773638197238e+2, -1.602512467866e+3, 8.425273498280e+2, 8.422758941500e+1, -1.455757871344e+3, -5.675121506200e+3, -7.340797223540e+2, -1.291218519198e+3, -1.773638197238e+2, 1.435198117668e+4, 7.017882376280e-9, 1.492286663068e+2, 7.538985690600e+1, -6.166178913900e+1, -5.732862975560e+1, -1.734437584300e+1, 2.139711935710e+0, -1.602512467866e+3, 7.018704063600e-9, 1.404054791182e+4, -6.233033935480e+2, -2.932131143096e+2, 1.025131033748e+2, -8.882494221820e+2, -6.447837508760e+1, -2.608106016078e+2, 8.425273498280e+2, 1.492286663068e+2, -6.233033935480e+2, 6.169297761040e+2, 2.152166828426e-9, 4.558287232240e+2, -2.592081224912e+3, -3.768899601800e+2, -8.237240093440e+1, 8.422758941500e+1, 7.538985690600e+1, -2.932131143096e+2, 2.151810134644e-9, 8.324310406920e+2, 5.606216348920e+2, -1.711918649888e+3, 3.002298898960e+2, -3.067013601100e+3, -1.455757871344e+3, -6.166178913900e+1, 1.025131033748e+2, 4.558287232240e+2, 5.606216348920e+2, 3.927651344860e+4, 3.424336970680e-8, -3.200807605760e+1, 5.531363469240e+0, -5.675121506200e+3, -5.732862975560e+1, -8.882494221820e+2, -2.592081224912e+3, -1.711918649888e+3, 3.423615724260e-8, 3.770884192400e+4, -9.321443096220e+1, -3.766729941280e+2, -7.340797223540e+2, -1.734437584300e+1, -6.447837508760e+1, -3.768899601800e+2, 3.002298898960e+2, -3.200807605760e+1, -9.321443096220e+1, 1.456848407112e+5, 2.242472021306e-6, -1.291218519198e+3, 2.139711935710e+0, -2.608106016078e+2, -8.237240093440e+1, -3.067013601100e+3, 5.531363469240e+0, -3.766729941280e+2, 2.242476256184e-6, 1.456018646376e+5
|
||||
]
|
||||
</C>
|
||||
</thermostat>
|
||||
|
||||
|
||||
<timestep units='femtosecond'> 0.1</timestep>
|
||||
<temperature units='kelvin'>298</temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,650 +0,0 @@
|
||||
CRYST 35.233 35.233 35.233 90.00 90.00 90.00 P 1 1
|
||||
ATOM 1 O 1 1 3.846 5.672 1.323 0.00 0.00 0
|
||||
ATOM 2 H 1 1 2.979 7.054 0.857 0.00 0.00 0
|
||||
ATOM 3 H 1 1 5.525 5.697 0.451 0.00 0.00 0
|
||||
ATOM 4 O 1 1 34.557 34.341 3.078 0.00 0.00 0
|
||||
ATOM 5 H 1 1 33.722 34.689 4.840 0.00 0.00 0
|
||||
ATOM 6 H 1 1 36.029 33.220 3.711 0.00 0.00 0
|
||||
ATOM 7 O 1 1 5.591 1.963 13.477 0.00 0.00 0
|
||||
ATOM 8 H 1 1 7.265 1.864 13.851 0.00 0.00 0
|
||||
ATOM 9 H 1 1 5.009 3.555 13.916 0.00 0.00 0
|
||||
ATOM 10 O 1 1 1.060 2.061 21.718 0.00 0.00 0
|
||||
ATOM 11 H 1 1 0.757 0.261 21.820 0.00 0.00 0
|
||||
ATOM 12 H 1 1 0.213 3.013 23.047 0.00 0.00 0
|
||||
ATOM 13 O 1 1 1.200 1.337 29.006 0.00 0.00 0
|
||||
ATOM 14 H 1 1 0.818 1.884 30.732 0.00 0.00 0
|
||||
ATOM 15 H 1 1 2.883 1.825 29.011 0.00 0.00 0
|
||||
ATOM 16 O 1 1 1.331 1.386 34.306 0.00 0.00 0
|
||||
ATOM 17 H 1 1 2.392 2.898 34.846 0.00 0.00 0
|
||||
ATOM 18 H 1 1 0.814 0.532 35.836 0.00 0.00 0
|
||||
ATOM 19 O 1 1 31.451 10.201 0.726 0.00 0.00 0
|
||||
ATOM 20 H 1 1 32.282 10.877 -0.750 0.00 0.00 0
|
||||
ATOM 21 H 1 1 30.920 11.594 1.677 0.00 0.00 0
|
||||
ATOM 22 O 1 1 0.836 10.808 4.298 0.00 0.00 0
|
||||
ATOM 23 H 1 1 0.305 10.643 2.793 0.00 0.00 0
|
||||
ATOM 24 H 1 1 -0.356 10.334 5.524 0.00 0.00 0
|
||||
ATOM 25 O 1 1 34.381 5.979 9.194 0.00 0.00 0
|
||||
ATOM 26 H 1 1 33.616 7.673 8.857 0.00 0.00 0
|
||||
ATOM 27 H 1 1 35.115 5.260 7.618 0.00 0.00 0
|
||||
ATOM 28 O 1 1 33.212 6.480 24.278 0.00 0.00 0
|
||||
ATOM 29 H 1 1 31.624 6.908 23.521 0.00 0.00 0
|
||||
ATOM 30 H 1 1 32.544 4.990 24.982 0.00 0.00 0
|
||||
ATOM 31 O 1 1 1.992 9.002 26.863 0.00 0.00 0
|
||||
ATOM 32 H 1 1 1.856 10.175 25.579 0.00 0.00 0
|
||||
ATOM 33 H 1 1 0.519 8.099 26.386 0.00 0.00 0
|
||||
ATOM 34 O 1 1 2.054 8.660 32.515 0.00 0.00 0
|
||||
ATOM 35 H 1 1 2.167 8.727 30.494 0.00 0.00 0
|
||||
ATOM 36 H 1 1 2.374 10.513 33.038 0.00 0.00 0
|
||||
ATOM 37 O 1 1 3.402 16.639 3.008 0.00 0.00 0
|
||||
ATOM 38 H 1 1 4.127 15.872 4.446 0.00 0.00 0
|
||||
ATOM 39 H 1 1 2.905 18.339 3.160 0.00 0.00 0
|
||||
ATOM 40 O 1 1 4.222 15.444 8.072 0.00 0.00 0
|
||||
ATOM 41 H 1 1 5.211 16.756 8.299 0.00 0.00 0
|
||||
ATOM 42 H 1 1 2.560 15.492 8.860 0.00 0.00 0
|
||||
ATOM 43 O 1 1 2.831 9.246 16.488 0.00 0.00 0
|
||||
ATOM 44 H 1 1 2.869 8.023 18.050 0.00 0.00 0
|
||||
ATOM 45 H 1 1 3.960 8.467 15.154 0.00 0.00 0
|
||||
ATOM 46 O 1 1 5.563 6.003 20.907 0.00 0.00 0
|
||||
ATOM 47 H 1 1 4.653 4.638 21.480 0.00 0.00 0
|
||||
ATOM 48 H 1 1 6.405 6.208 22.529 0.00 0.00 0
|
||||
ATOM 49 O 1 1 2.087 13.370 22.913 0.00 0.00 0
|
||||
ATOM 50 H 1 1 2.832 14.804 23.422 0.00 0.00 0
|
||||
ATOM 51 H 1 1 1.434 13.509 21.196 0.00 0.00 0
|
||||
ATOM 52 O 1 1 3.369 17.886 25.109 0.00 0.00 0
|
||||
ATOM 53 H 1 1 3.655 17.200 26.766 0.00 0.00 0
|
||||
ATOM 54 H 1 1 4.772 18.977 24.500 0.00 0.00 0
|
||||
ATOM 55 O 1 1 34.764 20.803 0.948 0.00 0.00 0
|
||||
ATOM 56 H 1 1 35.210 21.267 2.816 0.00 0.00 0
|
||||
ATOM 57 H 1 1 35.962 21.726 0.131 0.00 0.00 0
|
||||
ATOM 58 O 1 1 2.836 24.178 15.229 0.00 0.00 0
|
||||
ATOM 59 H 1 1 2.795 22.346 14.876 0.00 0.00 0
|
||||
ATOM 60 H 1 1 2.414 24.115 17.130 0.00 0.00 0
|
||||
ATOM 61 O 1 1 33.000 24.481 15.230 0.00 0.00 0
|
||||
ATOM 62 H 1 1 34.640 24.804 15.013 0.00 0.00 0
|
||||
ATOM 63 H 1 1 32.401 25.764 14.295 0.00 0.00 0
|
||||
ATOM 64 O 1 1 0.404 26.779 23.400 0.00 0.00 0
|
||||
ATOM 65 H 1 1 1.353 27.248 24.987 0.00 0.00 0
|
||||
ATOM 66 H 1 1 1.546 28.050 22.317 0.00 0.00 0
|
||||
ATOM 67 O 1 1 34.222 21.380 25.418 0.00 0.00 0
|
||||
ATOM 68 H 1 1 35.669 20.151 25.317 0.00 0.00 0
|
||||
ATOM 69 H 1 1 32.960 21.180 23.992 0.00 0.00 0
|
||||
ATOM 70 O 1 1 33.259 17.438 32.480 0.00 0.00 0
|
||||
ATOM 71 H 1 1 33.314 18.782 33.883 0.00 0.00 0
|
||||
ATOM 72 H 1 1 32.743 18.181 30.871 0.00 0.00 0
|
||||
ATOM 73 O 1 1 4.463 21.979 3.936 0.00 0.00 0
|
||||
ATOM 74 H 1 1 5.856 23.084 3.400 0.00 0.00 0
|
||||
ATOM 75 H 1 1 3.986 22.180 5.602 0.00 0.00 0
|
||||
ATOM 76 O 1 1 6.258 25.851 8.520 0.00 0.00 0
|
||||
ATOM 77 H 1 1 5.767 27.693 8.476 0.00 0.00 0
|
||||
ATOM 78 H 1 1 7.202 25.506 10.186 0.00 0.00 0
|
||||
ATOM 79 O 1 1 0.601 29.737 12.747 0.00 0.00 0
|
||||
ATOM 80 H 1 1 -0.685 30.842 12.350 0.00 0.00 0
|
||||
ATOM 81 H 1 1 1.336 30.716 14.031 0.00 0.00 0
|
||||
ATOM 82 O 1 1 7.563 28.191 24.333 0.00 0.00 0
|
||||
ATOM 83 H 1 1 9.201 28.828 24.684 0.00 0.00 0
|
||||
ATOM 84 H 1 1 7.381 27.621 22.799 0.00 0.00 0
|
||||
ATOM 85 O 1 1 3.653 27.109 27.772 0.00 0.00 0
|
||||
ATOM 86 H 1 1 5.126 27.015 26.772 0.00 0.00 0
|
||||
ATOM 87 H 1 1 3.031 28.756 27.698 0.00 0.00 0
|
||||
ATOM 88 O 1 1 2.596 23.991 32.476 0.00 0.00 0
|
||||
ATOM 89 H 1 1 2.879 24.791 30.859 0.00 0.00 0
|
||||
ATOM 90 H 1 1 4.003 22.913 32.701 0.00 0.00 0
|
||||
ATOM 91 O 1 1 3.083 31.317 3.644 0.00 0.00 0
|
||||
ATOM 92 H 1 1 4.133 30.589 2.539 0.00 0.00 0
|
||||
ATOM 93 H 1 1 4.218 32.173 5.037 0.00 0.00 0
|
||||
ATOM 94 O 1 1 4.661 30.555 9.368 0.00 0.00 0
|
||||
ATOM 95 H 1 1 3.184 29.843 10.132 0.00 0.00 0
|
||||
ATOM 96 H 1 1 4.358 32.448 9.126 0.00 0.00 0
|
||||
ATOM 97 O 1 1 3.465 32.537 15.778 0.00 0.00 0
|
||||
ATOM 98 H 1 1 5.072 31.819 15.903 0.00 0.00 0
|
||||
ATOM 99 H 1 1 4.055 34.257 15.284 0.00 0.00 0
|
||||
ATOM 100 O 1 1 4.215 29.153 20.317 0.00 0.00 0
|
||||
ATOM 101 H 1 1 3.658 30.176 18.842 0.00 0.00 0
|
||||
ATOM 102 H 1 1 4.959 30.291 21.449 0.00 0.00 0
|
||||
ATOM 103 O 1 1 1.126 31.333 28.768 0.00 0.00 0
|
||||
ATOM 104 H 1 1 2.395 31.124 29.925 0.00 0.00 0
|
||||
ATOM 105 H 1 1 0.768 33.092 28.898 0.00 0.00 0
|
||||
ATOM 106 O 1 1 4.881 32.616 32.302 0.00 0.00 0
|
||||
ATOM 107 H 1 1 6.588 32.911 31.725 0.00 0.00 0
|
||||
ATOM 108 H 1 1 4.486 34.037 33.249 0.00 0.00 0
|
||||
ATOM 109 O 1 1 8.962 5.556 0.151 0.00 0.00 0
|
||||
ATOM 110 H 1 1 9.652 6.991 0.859 0.00 0.00 0
|
||||
ATOM 111 H 1 1 9.173 4.477 1.645 0.00 0.00 0
|
||||
ATOM 112 O 1 1 1.833 3.518 5.679 0.00 0.00 0
|
||||
ATOM 113 H 1 1 2.889 2.731 6.788 0.00 0.00 0
|
||||
ATOM 114 H 1 1 2.789 4.187 4.147 0.00 0.00 0
|
||||
ATOM 115 O 1 1 10.510 34.726 13.073 0.00 0.00 0
|
||||
ATOM 116 H 1 1 11.920 34.118 11.919 0.00 0.00 0
|
||||
ATOM 117 H 1 1 11.295 34.968 14.741 0.00 0.00 0
|
||||
ATOM 118 O 1 1 7.212 0.042 22.454 0.00 0.00 0
|
||||
ATOM 119 H 1 1 6.924 0.470 24.172 0.00 0.00 0
|
||||
ATOM 120 H 1 1 8.319 1.228 21.653 0.00 0.00 0
|
||||
ATOM 121 O 1 1 6.365 2.010 27.544 0.00 0.00 0
|
||||
ATOM 122 H 1 1 5.954 3.585 26.852 0.00 0.00 0
|
||||
ATOM 123 H 1 1 7.758 2.549 28.696 0.00 0.00 0
|
||||
ATOM 124 O 1 1 10.833 3.140 30.787 0.00 0.00 0
|
||||
ATOM 125 H 1 1 12.697 2.975 30.867 0.00 0.00 0
|
||||
ATOM 126 H 1 1 10.389 3.700 32.404 0.00 0.00 0
|
||||
ATOM 127 O 1 1 8.684 9.342 3.912 0.00 0.00 0
|
||||
ATOM 128 H 1 1 6.985 9.256 4.773 0.00 0.00 0
|
||||
ATOM 129 H 1 1 8.684 10.809 3.011 0.00 0.00 0
|
||||
ATOM 130 O 1 1 4.873 9.919 7.707 0.00 0.00 0
|
||||
ATOM 131 H 1 1 3.698 9.771 6.194 0.00 0.00 0
|
||||
ATOM 132 H 1 1 5.047 11.961 7.624 0.00 0.00 0
|
||||
ATOM 133 O 1 1 10.031 5.018 9.699 0.00 0.00 0
|
||||
ATOM 134 H 1 1 9.675 3.382 10.340 0.00 0.00 0
|
||||
ATOM 135 H 1 1 9.132 5.987 10.825 0.00 0.00 0
|
||||
ATOM 136 O 1 1 11.246 3.918 21.929 0.00 0.00 0
|
||||
ATOM 137 H 1 1 12.614 2.770 22.341 0.00 0.00 0
|
||||
ATOM 138 H 1 1 12.073 5.686 21.497 0.00 0.00 0
|
||||
ATOM 139 O 1 1 6.825 7.164 25.708 0.00 0.00 0
|
||||
ATOM 140 H 1 1 8.036 8.374 25.980 0.00 0.00 0
|
||||
ATOM 141 H 1 1 5.206 7.900 25.891 0.00 0.00 0
|
||||
ATOM 142 O 1 1 10.171 12.811 0.295 0.00 0.00 0
|
||||
ATOM 143 H 1 1 10.033 12.818 -1.609 0.00 0.00 0
|
||||
ATOM 144 H 1 1 9.880 14.492 0.480 0.00 0.00 0
|
||||
ATOM 145 O 1 1 8.190 17.402 1.253 0.00 0.00 0
|
||||
ATOM 146 H 1 1 9.472 18.531 1.253 0.00 0.00 0
|
||||
ATOM 147 H 1 1 6.351 17.817 1.568 0.00 0.00 0
|
||||
ATOM 148 O 1 1 11.233 16.188 8.299 0.00 0.00 0
|
||||
ATOM 149 H 1 1 10.291 17.689 8.166 0.00 0.00 0
|
||||
ATOM 150 H 1 1 12.768 17.123 8.733 0.00 0.00 0
|
||||
ATOM 151 O 1 1 6.386 8.002 12.846 0.00 0.00 0
|
||||
ATOM 152 H 1 1 7.701 8.896 13.655 0.00 0.00 0
|
||||
ATOM 153 H 1 1 5.591 8.877 11.519 0.00 0.00 0
|
||||
ATOM 154 O 1 1 8.184 10.419 18.848 0.00 0.00 0
|
||||
ATOM 155 H 1 1 9.498 9.434 19.905 0.00 0.00 0
|
||||
ATOM 156 H 1 1 6.882 9.027 18.948 0.00 0.00 0
|
||||
ATOM 157 O 1 1 10.806 14.431 21.328 0.00 0.00 0
|
||||
ATOM 158 H 1 1 9.177 13.531 20.670 0.00 0.00 0
|
||||
ATOM 159 H 1 1 11.344 15.696 20.448 0.00 0.00 0
|
||||
ATOM 160 O 1 1 9.237 13.928 30.341 0.00 0.00 0
|
||||
ATOM 161 H 1 1 10.779 14.839 30.522 0.00 0.00 0
|
||||
ATOM 162 H 1 1 9.965 13.192 28.899 0.00 0.00 0
|
||||
ATOM 163 O 1 1 10.918 21.707 1.864 0.00 0.00 0
|
||||
ATOM 164 H 1 1 10.280 23.449 2.279 0.00 0.00 0
|
||||
ATOM 165 H 1 1 12.708 21.456 1.749 0.00 0.00 0
|
||||
ATOM 166 O 1 1 9.353 16.125 13.927 0.00 0.00 0
|
||||
ATOM 167 H 1 1 9.938 17.594 14.618 0.00 0.00 0
|
||||
ATOM 168 H 1 1 9.518 16.360 12.244 0.00 0.00 0
|
||||
ATOM 169 O 1 1 10.371 11.107 14.268 0.00 0.00 0
|
||||
ATOM 170 H 1 1 9.644 10.406 15.859 0.00 0.00 0
|
||||
ATOM 171 H 1 1 9.434 12.523 14.117 0.00 0.00 0
|
||||
ATOM 172 O 1 1 3.351 22.769 20.196 0.00 0.00 0
|
||||
ATOM 173 H 1 1 2.055 23.686 21.503 0.00 0.00 0
|
||||
ATOM 174 H 1 1 2.452 21.401 19.413 0.00 0.00 0
|
||||
ATOM 175 O 1 1 6.836 21.329 23.199 0.00 0.00 0
|
||||
ATOM 176 H 1 1 8.249 20.848 22.320 0.00 0.00 0
|
||||
ATOM 177 H 1 1 5.668 21.841 21.886 0.00 0.00 0
|
||||
ATOM 178 O 1 1 4.604 15.649 30.043 0.00 0.00 0
|
||||
ATOM 179 H 1 1 6.453 15.217 30.207 0.00 0.00 0
|
||||
ATOM 180 H 1 1 3.822 14.762 31.562 0.00 0.00 0
|
||||
ATOM 181 O 1 1 7.125 19.976 9.421 0.00 0.00 0
|
||||
ATOM 182 H 1 1 5.918 20.453 10.730 0.00 0.00 0
|
||||
ATOM 183 H 1 1 8.099 21.496 9.491 0.00 0.00 0
|
||||
ATOM 184 O 1 1 9.063 25.912 13.186 0.00 0.00 0
|
||||
ATOM 185 H 1 1 10.350 26.572 12.367 0.00 0.00 0
|
||||
ATOM 186 H 1 1 9.680 24.367 13.697 0.00 0.00 0
|
||||
ATOM 187 O 1 1 8.022 22.343 17.042 0.00 0.00 0
|
||||
ATOM 188 H 1 1 9.144 23.367 18.074 0.00 0.00 0
|
||||
ATOM 189 H 1 1 6.562 23.462 16.852 0.00 0.00 0
|
||||
ATOM 190 O 1 1 10.762 26.285 19.963 0.00 0.00 0
|
||||
ATOM 191 H 1 1 11.036 27.966 20.538 0.00 0.00 0
|
||||
ATOM 192 H 1 1 11.078 25.401 21.456 0.00 0.00 0
|
||||
ATOM 193 O 1 1 9.158 22.902 28.391 0.00 0.00 0
|
||||
ATOM 194 H 1 1 8.219 23.528 27.085 0.00 0.00 0
|
||||
ATOM 195 H 1 1 8.089 21.760 29.509 0.00 0.00 0
|
||||
ATOM 196 O 1 1 6.219 20.158 31.921 0.00 0.00 0
|
||||
ATOM 197 H 1 1 5.635 18.511 31.161 0.00 0.00 0
|
||||
ATOM 198 H 1 1 7.530 19.624 33.071 0.00 0.00 0
|
||||
ATOM 199 O 1 1 11.191 31.509 2.617 0.00 0.00 0
|
||||
ATOM 200 H 1 1 10.460 32.214 4.108 0.00 0.00 0
|
||||
ATOM 201 H 1 1 13.176 31.751 2.577 0.00 0.00 0
|
||||
ATOM 202 O 1 1 4.748 0.055 8.605 0.00 0.00 0
|
||||
ATOM 203 H 1 1 5.380 0.517 10.183 0.00 0.00 0
|
||||
ATOM 204 H 1 1 6.050 -0.306 7.480 0.00 0.00 0
|
||||
ATOM 205 O 1 1 8.695 30.809 15.731 0.00 0.00 0
|
||||
ATOM 206 H 1 1 9.189 32.103 14.495 0.00 0.00 0
|
||||
ATOM 207 H 1 1 8.447 29.069 14.868 0.00 0.00 0
|
||||
ATOM 208 O 1 1 10.128 31.402 20.766 0.00 0.00 0
|
||||
ATOM 209 H 1 1 9.456 30.905 19.155 0.00 0.00 0
|
||||
ATOM 210 H 1 1 9.020 32.731 21.415 0.00 0.00 0
|
||||
ATOM 211 O 1 1 12.238 30.162 25.837 0.00 0.00 0
|
||||
ATOM 212 H 1 1 11.418 30.908 27.110 0.00 0.00 0
|
||||
ATOM 213 H 1 1 12.396 31.331 24.678 0.00 0.00 0
|
||||
ATOM 214 O 1 1 10.395 32.537 30.624 0.00 0.00 0
|
||||
ATOM 215 H 1 1 11.042 34.339 30.751 0.00 0.00 0
|
||||
ATOM 216 H 1 1 11.378 31.486 31.538 0.00 0.00 0
|
||||
ATOM 217 O 1 1 10.438 3.626 5.087 0.00 0.00 0
|
||||
ATOM 218 H 1 1 12.435 4.082 5.136 0.00 0.00 0
|
||||
ATOM 219 H 1 1 9.822 4.284 6.681 0.00 0.00 0
|
||||
ATOM 220 O 1 1 14.762 3.401 13.776 0.00 0.00 0
|
||||
ATOM 221 H 1 1 16.518 3.824 13.376 0.00 0.00 0
|
||||
ATOM 222 H 1 1 13.752 4.757 12.964 0.00 0.00 0
|
||||
ATOM 223 O 1 1 12.382 1.012 17.643 0.00 0.00 0
|
||||
ATOM 224 H 1 1 13.346 1.997 16.444 0.00 0.00 0
|
||||
ATOM 225 H 1 1 11.931 2.133 18.998 0.00 0.00 0
|
||||
ATOM 226 O 1 1 15.278 1.293 24.559 0.00 0.00 0
|
||||
ATOM 227 H 1 1 16.071 0.946 26.365 0.00 0.00 0
|
||||
ATOM 228 H 1 1 15.794 0.199 23.499 0.00 0.00 0
|
||||
ATOM 229 O 1 1 22.226 31.627 24.712 0.00 0.00 0
|
||||
ATOM 230 H 1 1 23.338 32.595 23.876 0.00 0.00 0
|
||||
ATOM 231 H 1 1 22.161 30.053 24.132 0.00 0.00 0
|
||||
ATOM 232 O 1 1 15.640 1.847 32.717 0.00 0.00 0
|
||||
ATOM 233 H 1 1 17.488 2.473 31.874 0.00 0.00 0
|
||||
ATOM 234 H 1 1 16.403 0.869 34.267 0.00 0.00 0
|
||||
ATOM 235 O 1 1 14.858 10.199 2.754 0.00 0.00 0
|
||||
ATOM 236 H 1 1 13.360 10.712 2.282 0.00 0.00 0
|
||||
ATOM 237 H 1 1 14.560 9.316 4.559 0.00 0.00 0
|
||||
ATOM 238 O 1 1 15.717 8.469 10.739 0.00 0.00 0
|
||||
ATOM 239 H 1 1 17.323 9.581 10.875 0.00 0.00 0
|
||||
ATOM 240 H 1 1 14.574 9.631 10.221 0.00 0.00 0
|
||||
ATOM 241 O 1 1 15.248 10.398 16.525 0.00 0.00 0
|
||||
ATOM 242 H 1 1 16.324 9.181 16.149 0.00 0.00 0
|
||||
ATOM 243 H 1 1 14.172 10.488 15.098 0.00 0.00 0
|
||||
ATOM 244 O 1 1 13.226 8.438 20.801 0.00 0.00 0
|
||||
ATOM 245 H 1 1 14.043 8.996 19.295 0.00 0.00 0
|
||||
ATOM 246 H 1 1 14.661 7.802 22.093 0.00 0.00 0
|
||||
ATOM 247 O 1 1 10.173 10.961 25.875 0.00 0.00 0
|
||||
ATOM 248 H 1 1 11.477 10.223 26.940 0.00 0.00 0
|
||||
ATOM 249 H 1 1 11.269 10.738 24.343 0.00 0.00 0
|
||||
ATOM 250 O 1 1 12.792 7.737 29.173 0.00 0.00 0
|
||||
ATOM 251 H 1 1 12.199 6.038 29.475 0.00 0.00 0
|
||||
ATOM 252 H 1 1 14.427 7.450 29.617 0.00 0.00 0
|
||||
ATOM 253 O 1 1 15.180 19.498 3.578 0.00 0.00 0
|
||||
ATOM 254 H 1 1 14.883 17.596 4.080 0.00 0.00 0
|
||||
ATOM 255 H 1 1 16.754 19.579 2.626 0.00 0.00 0
|
||||
ATOM 256 O 1 1 12.517 11.093 7.701 0.00 0.00 0
|
||||
ATOM 257 H 1 1 12.224 12.778 7.555 0.00 0.00 0
|
||||
ATOM 258 H 1 1 11.150 10.393 7.057 0.00 0.00 0
|
||||
ATOM 259 O 1 1 16.266 16.271 10.758 0.00 0.00 0
|
||||
ATOM 260 H 1 1 16.507 15.795 12.768 0.00 0.00 0
|
||||
ATOM 261 H 1 1 17.725 16.977 10.292 0.00 0.00 0
|
||||
ATOM 262 O 1 1 14.069 18.399 18.897 0.00 0.00 0
|
||||
ATOM 263 H 1 1 15.513 17.523 18.155 0.00 0.00 0
|
||||
ATOM 264 H 1 1 14.958 18.709 20.673 0.00 0.00 0
|
||||
ATOM 265 O 1 1 14.099 15.480 25.510 0.00 0.00 0
|
||||
ATOM 266 H 1 1 13.698 16.872 26.938 0.00 0.00 0
|
||||
ATOM 267 H 1 1 12.567 15.379 24.444 0.00 0.00 0
|
||||
ATOM 268 O 1 1 13.309 17.574 30.292 0.00 0.00 0
|
||||
ATOM 269 H 1 1 14.937 16.934 30.810 0.00 0.00 0
|
||||
ATOM 270 H 1 1 13.969 19.494 30.012 0.00 0.00 0
|
||||
ATOM 271 O 1 1 18.371 23.257 0.925 0.00 0.00 0
|
||||
ATOM 272 H 1 1 19.479 23.480 2.321 0.00 0.00 0
|
||||
ATOM 273 H 1 1 19.087 24.325 -0.369 0.00 0.00 0
|
||||
ATOM 274 O 1 1 12.100 21.730 11.355 0.00 0.00 0
|
||||
ATOM 275 H 1 1 13.141 22.287 12.743 0.00 0.00 0
|
||||
ATOM 276 H 1 1 13.467 22.236 10.244 0.00 0.00 0
|
||||
ATOM 277 O 1 1 12.163 23.290 23.597 0.00 0.00 0
|
||||
ATOM 278 H 1 1 11.324 22.736 24.949 0.00 0.00 0
|
||||
ATOM 279 H 1 1 13.882 22.872 23.840 0.00 0.00 0
|
||||
ATOM 280 O 1 1 20.173 26.761 22.628 0.00 0.00 0
|
||||
ATOM 281 H 1 1 20.206 26.532 20.792 0.00 0.00 0
|
||||
ATOM 282 H 1 1 21.556 25.742 23.389 0.00 0.00 0
|
||||
ATOM 283 O 1 1 16.701 21.165 22.605 0.00 0.00 0
|
||||
ATOM 284 H 1 1 18.028 20.686 23.848 0.00 0.00 0
|
||||
ATOM 285 H 1 1 17.104 22.866 21.949 0.00 0.00 0
|
||||
ATOM 286 O 1 1 11.391 26.461 33.705 0.00 0.00 0
|
||||
ATOM 287 H 1 1 9.841 27.192 34.048 0.00 0.00 0
|
||||
ATOM 288 H 1 1 11.776 25.540 35.243 0.00 0.00 0
|
||||
ATOM 289 O 1 1 9.898 25.989 4.553 0.00 0.00 0
|
||||
ATOM 290 H 1 1 8.902 26.131 6.039 0.00 0.00 0
|
||||
ATOM 291 H 1 1 10.287 27.806 4.376 0.00 0.00 0
|
||||
ATOM 292 O 1 1 14.308 26.960 10.877 0.00 0.00 0
|
||||
ATOM 293 H 1 1 15.302 27.405 12.173 0.00 0.00 0
|
||||
ATOM 294 H 1 1 15.463 26.151 9.633 0.00 0.00 0
|
||||
ATOM 295 O 1 1 13.433 22.960 16.904 0.00 0.00 0
|
||||
ATOM 296 H 1 1 13.409 24.131 18.132 0.00 0.00 0
|
||||
ATOM 297 H 1 1 13.624 21.191 17.520 0.00 0.00 0
|
||||
ATOM 298 O 1 1 16.409 26.768 26.875 0.00 0.00 0
|
||||
ATOM 299 H 1 1 17.590 26.987 25.431 0.00 0.00 0
|
||||
ATOM 300 H 1 1 14.751 27.703 26.230 0.00 0.00 0
|
||||
ATOM 301 O 1 1 14.405 22.733 29.892 0.00 0.00 0
|
||||
ATOM 302 H 1 1 15.423 23.079 28.494 0.00 0.00 0
|
||||
ATOM 303 H 1 1 12.826 23.259 29.416 0.00 0.00 0
|
||||
ATOM 304 O 1 1 6.905 29.408 0.749 0.00 0.00 0
|
||||
ATOM 305 H 1 1 8.428 30.483 1.567 0.00 0.00 0
|
||||
ATOM 306 H 1 1 6.353 30.814 -0.444 0.00 0.00 0
|
||||
ATOM 307 O 1 1 9.189 34.159 6.509 0.00 0.00 0
|
||||
ATOM 308 H 1 1 10.198 34.193 8.002 0.00 0.00 0
|
||||
ATOM 309 H 1 1 9.890 35.692 5.785 0.00 0.00 0
|
||||
ATOM 310 O 1 1 14.256 32.316 9.369 0.00 0.00 0
|
||||
ATOM 311 H 1 1 15.733 32.867 9.486 0.00 0.00 0
|
||||
ATOM 312 H 1 1 14.754 30.670 10.090 0.00 0.00 0
|
||||
ATOM 313 O 1 1 14.714 30.841 16.516 0.00 0.00 0
|
||||
ATOM 314 H 1 1 13.748 29.551 17.279 0.00 0.00 0
|
||||
ATOM 315 H 1 1 13.218 31.933 16.614 0.00 0.00 0
|
||||
ATOM 316 O 1 1 18.409 33.641 20.611 0.00 0.00 0
|
||||
ATOM 317 H 1 1 19.601 32.274 21.115 0.00 0.00 0
|
||||
ATOM 318 H 1 1 17.360 32.655 19.518 0.00 0.00 0
|
||||
ATOM 319 O 1 1 16.062 28.638 32.207 0.00 0.00 0
|
||||
ATOM 320 H 1 1 14.648 27.958 33.253 0.00 0.00 0
|
||||
ATOM 321 H 1 1 15.752 28.014 30.522 0.00 0.00 0
|
||||
ATOM 322 O 1 1 16.200 30.895 1.473 0.00 0.00 0
|
||||
ATOM 323 H 1 1 16.626 29.968 -0.130 0.00 0.00 0
|
||||
ATOM 324 H 1 1 17.167 29.833 2.927 0.00 0.00 0
|
||||
ATOM 325 O 1 1 20.278 3.529 6.048 0.00 0.00 0
|
||||
ATOM 326 H 1 1 20.977 3.611 4.575 0.00 0.00 0
|
||||
ATOM 327 H 1 1 21.312 4.513 7.251 0.00 0.00 0
|
||||
ATOM 328 O 1 1 23.079 5.778 10.408 0.00 0.00 0
|
||||
ATOM 329 H 1 1 24.650 6.259 10.838 0.00 0.00 0
|
||||
ATOM 330 H 1 1 22.342 7.609 10.178 0.00 0.00 0
|
||||
ATOM 331 O 1 1 19.581 2.031 12.110 0.00 0.00 0
|
||||
ATOM 332 H 1 1 19.039 1.082 10.440 0.00 0.00 0
|
||||
ATOM 333 H 1 1 21.141 2.991 11.851 0.00 0.00 0
|
||||
ATOM 334 O 1 1 22.005 3.223 23.178 0.00 0.00 0
|
||||
ATOM 335 H 1 1 21.429 4.090 24.554 0.00 0.00 0
|
||||
ATOM 336 H 1 1 20.654 1.791 22.711 0.00 0.00 0
|
||||
ATOM 337 O 1 1 16.630 6.422 23.792 0.00 0.00 0
|
||||
ATOM 338 H 1 1 16.219 4.804 24.406 0.00 0.00 0
|
||||
ATOM 339 H 1 1 17.066 7.128 25.282 0.00 0.00 0
|
||||
ATOM 340 O 1 1 21.676 5.564 28.158 0.00 0.00 0
|
||||
ATOM 341 H 1 1 20.658 6.717 29.185 0.00 0.00 0
|
||||
ATOM 342 H 1 1 23.413 5.828 28.996 0.00 0.00 0
|
||||
ATOM 343 O 1 1 15.257 5.265 5.626 0.00 0.00 0
|
||||
ATOM 344 H 1 1 16.914 4.519 5.490 0.00 0.00 0
|
||||
ATOM 345 H 1 1 15.144 6.150 6.972 0.00 0.00 0
|
||||
ATOM 346 O 1 1 20.137 11.082 10.437 0.00 0.00 0
|
||||
ATOM 347 H 1 1 20.021 10.947 8.733 0.00 0.00 0
|
||||
ATOM 348 H 1 1 21.025 12.555 10.853 0.00 0.00 0
|
||||
ATOM 349 O 1 1 23.089 14.627 12.437 0.00 0.00 0
|
||||
ATOM 350 H 1 1 24.716 15.254 12.736 0.00 0.00 0
|
||||
ATOM 351 H 1 1 23.284 13.228 13.653 0.00 0.00 0
|
||||
ATOM 352 O 1 1 24.083 12.649 22.566 0.00 0.00 0
|
||||
ATOM 353 H 1 1 22.397 12.663 23.042 0.00 0.00 0
|
||||
ATOM 354 H 1 1 24.901 13.851 23.565 0.00 0.00 0
|
||||
ATOM 355 O 1 1 17.865 7.909 30.036 0.00 0.00 0
|
||||
ATOM 356 H 1 1 17.509 8.045 31.982 0.00 0.00 0
|
||||
ATOM 357 H 1 1 18.078 9.582 29.318 0.00 0.00 0
|
||||
ATOM 358 O 1 1 18.824 8.486 0.104 0.00 0.00 0
|
||||
ATOM 359 H 1 1 19.997 10.191 -0.057 0.00 0.00 0
|
||||
ATOM 360 H 1 1 17.077 8.998 0.779 0.00 0.00 0
|
||||
ATOM 361 O 1 1 20.122 9.143 5.343 0.00 0.00 0
|
||||
ATOM 362 H 1 1 19.373 8.819 3.821 0.00 0.00 0
|
||||
ATOM 363 H 1 1 21.998 8.776 5.128 0.00 0.00 0
|
||||
ATOM 364 O 1 1 16.413 14.459 5.855 0.00 0.00 0
|
||||
ATOM 365 H 1 1 15.536 13.007 5.239 0.00 0.00 0
|
||||
ATOM 366 H 1 1 16.006 14.725 7.737 0.00 0.00 0
|
||||
ATOM 367 O 1 1 17.561 15.066 15.654 0.00 0.00 0
|
||||
ATOM 368 H 1 1 17.575 13.398 16.055 0.00 0.00 0
|
||||
ATOM 369 H 1 1 18.978 15.828 16.400 0.00 0.00 0
|
||||
ATOM 370 O 1 1 26.374 17.047 24.817 0.00 0.00 0
|
||||
ATOM 371 H 1 1 27.983 17.098 25.632 0.00 0.00 0
|
||||
ATOM 372 H 1 1 25.629 18.751 24.919 0.00 0.00 0
|
||||
ATOM 373 O 1 1 19.784 12.960 28.706 0.00 0.00 0
|
||||
ATOM 374 H 1 1 21.662 13.055 28.871 0.00 0.00 0
|
||||
ATOM 375 H 1 1 19.545 14.070 27.143 0.00 0.00 0
|
||||
ATOM 376 O 1 1 17.891 16.733 32.499 0.00 0.00 0
|
||||
ATOM 377 H 1 1 18.327 15.240 31.277 0.00 0.00 0
|
||||
ATOM 378 H 1 1 18.633 18.335 31.693 0.00 0.00 0
|
||||
ATOM 379 O 1 1 23.733 23.024 1.663 0.00 0.00 0
|
||||
ATOM 380 H 1 1 24.800 24.052 2.776 0.00 0.00 0
|
||||
ATOM 381 H 1 1 24.693 22.618 0.198 0.00 0.00 0
|
||||
ATOM 382 O 1 1 20.789 18.440 9.443 0.00 0.00 0
|
||||
ATOM 383 H 1 1 20.766 17.257 7.881 0.00 0.00 0
|
||||
ATOM 384 H 1 1 21.896 17.345 10.385 0.00 0.00 0
|
||||
ATOM 385 O 1 1 21.574 17.493 17.838 0.00 0.00 0
|
||||
ATOM 386 H 1 1 20.597 18.955 17.218 0.00 0.00 0
|
||||
ATOM 387 H 1 1 22.538 16.874 16.251 0.00 0.00 0
|
||||
ATOM 388 O 1 1 19.168 14.748 24.131 0.00 0.00 0
|
||||
ATOM 389 H 1 1 19.711 16.390 23.712 0.00 0.00 0
|
||||
ATOM 390 H 1 1 17.429 14.695 24.403 0.00 0.00 0
|
||||
ATOM 391 O 1 1 22.149 20.198 24.977 0.00 0.00 0
|
||||
ATOM 392 H 1 1 21.639 20.924 26.486 0.00 0.00 0
|
||||
ATOM 393 H 1 1 22.656 21.657 24.411 0.00 0.00 0
|
||||
ATOM 394 O 1 1 20.565 20.792 29.600 0.00 0.00 0
|
||||
ATOM 395 H 1 1 22.264 20.409 30.214 0.00 0.00 0
|
||||
ATOM 396 H 1 1 20.548 22.408 30.597 0.00 0.00 0
|
||||
ATOM 397 O 1 1 20.802 26.547 9.615 0.00 0.00 0
|
||||
ATOM 398 H 1 1 20.099 27.984 8.338 0.00 0.00 0
|
||||
ATOM 399 H 1 1 21.277 27.539 11.325 0.00 0.00 0
|
||||
ATOM 400 O 1 1 16.283 23.589 7.779 0.00 0.00 0
|
||||
ATOM 401 H 1 1 16.093 21.973 6.712 0.00 0.00 0
|
||||
ATOM 402 H 1 1 17.901 22.971 8.154 0.00 0.00 0
|
||||
ATOM 403 O 1 1 18.469 29.798 13.568 0.00 0.00 0
|
||||
ATOM 404 H 1 1 19.712 31.216 13.506 0.00 0.00 0
|
||||
ATOM 405 H 1 1 16.872 30.343 14.396 0.00 0.00 0
|
||||
ATOM 406 O 1 1 18.790 21.712 16.060 0.00 0.00 0
|
||||
ATOM 407 H 1 1 19.878 23.090 16.485 0.00 0.00 0
|
||||
ATOM 408 H 1 1 17.201 22.326 15.819 0.00 0.00 0
|
||||
ATOM 409 O 1 1 21.747 26.084 16.349 0.00 0.00 0
|
||||
ATOM 410 H 1 1 20.783 27.021 15.300 0.00 0.00 0
|
||||
ATOM 411 H 1 1 22.705 27.328 17.206 0.00 0.00 0
|
||||
ATOM 412 O 1 1 20.769 26.211 32.050 0.00 0.00 0
|
||||
ATOM 413 H 1 1 21.488 27.404 33.328 0.00 0.00 0
|
||||
ATOM 414 H 1 1 18.989 26.710 32.145 0.00 0.00 0
|
||||
ATOM 415 O 1 1 19.820 29.181 5.559 0.00 0.00 0
|
||||
ATOM 416 H 1 1 20.991 29.509 4.109 0.00 0.00 0
|
||||
ATOM 417 H 1 1 19.431 31.018 6.221 0.00 0.00 0
|
||||
ATOM 418 O 1 1 19.240 33.867 7.993 0.00 0.00 0
|
||||
ATOM 419 H 1 1 19.107 35.039 6.604 0.00 0.00 0
|
||||
ATOM 420 H 1 1 20.697 33.671 9.063 0.00 0.00 0
|
||||
ATOM 421 O 1 1 22.511 34.976 15.793 0.00 0.00 0
|
||||
ATOM 422 H 1 1 23.716 36.163 16.603 0.00 0.00 0
|
||||
ATOM 423 H 1 1 21.699 36.150 14.467 0.00 0.00 0
|
||||
ATOM 424 O 1 1 22.622 30.284 19.069 0.00 0.00 0
|
||||
ATOM 425 H 1 1 22.049 31.351 17.725 0.00 0.00 0
|
||||
ATOM 426 H 1 1 24.411 30.773 19.576 0.00 0.00 0
|
||||
ATOM 427 O 1 1 18.639 33.611 28.369 0.00 0.00 0
|
||||
ATOM 428 H 1 1 18.226 32.159 29.103 0.00 0.00 0
|
||||
ATOM 429 H 1 1 19.906 33.008 27.158 0.00 0.00 0
|
||||
ATOM 430 O 1 1 22.520 1.325 31.926 0.00 0.00 0
|
||||
ATOM 431 H 1 1 22.803 2.668 30.796 0.00 0.00 0
|
||||
ATOM 432 H 1 1 21.045 0.425 31.122 0.00 0.00 0
|
||||
ATOM 433 O 1 1 21.754 3.789 1.159 0.00 0.00 0
|
||||
ATOM 434 H 1 1 22.085 2.785 -0.180 0.00 0.00 0
|
||||
ATOM 435 H 1 1 20.850 5.175 0.610 0.00 0.00 0
|
||||
ATOM 436 O 1 1 28.457 5.539 12.133 0.00 0.00 0
|
||||
ATOM 437 H 1 1 29.489 4.390 11.182 0.00 0.00 0
|
||||
ATOM 438 H 1 1 29.161 7.131 12.587 0.00 0.00 0
|
||||
ATOM 439 O 1 1 22.495 5.966 17.324 0.00 0.00 0
|
||||
ATOM 440 H 1 1 24.377 5.379 17.393 0.00 0.00 0
|
||||
ATOM 441 H 1 1 21.906 5.491 18.857 0.00 0.00 0
|
||||
ATOM 442 O 1 1 28.128 3.304 22.287 0.00 0.00 0
|
||||
ATOM 443 H 1 1 28.123 2.999 20.491 0.00 0.00 0
|
||||
ATOM 444 H 1 1 26.533 3.355 22.876 0.00 0.00 0
|
||||
ATOM 445 O 1 1 28.378 10.455 27.266 0.00 0.00 0
|
||||
ATOM 446 H 1 1 30.019 10.292 28.051 0.00 0.00 0
|
||||
ATOM 447 H 1 1 28.635 10.039 25.463 0.00 0.00 0
|
||||
ATOM 448 O 1 1 27.031 8.353 34.806 0.00 0.00 0
|
||||
ATOM 449 H 1 1 26.116 9.984 34.571 0.00 0.00 0
|
||||
ATOM 450 H 1 1 28.685 8.951 34.739 0.00 0.00 0
|
||||
ATOM 451 O 1 1 24.951 8.160 4.454 0.00 0.00 0
|
||||
ATOM 452 H 1 1 25.930 9.616 5.160 0.00 0.00 0
|
||||
ATOM 453 H 1 1 25.947 7.994 2.724 0.00 0.00 0
|
||||
ATOM 454 O 1 1 26.937 12.436 6.869 0.00 0.00 0
|
||||
ATOM 455 H 1 1 25.492 13.284 6.708 0.00 0.00 0
|
||||
ATOM 456 H 1 1 27.689 13.332 8.266 0.00 0.00 0
|
||||
ATOM 457 O 1 1 23.365 11.214 16.933 0.00 0.00 0
|
||||
ATOM 458 H 1 1 22.247 9.744 16.789 0.00 0.00 0
|
||||
ATOM 459 H 1 1 23.264 12.035 18.539 0.00 0.00 0
|
||||
ATOM 460 O 1 1 28.321 8.759 22.158 0.00 0.00 0
|
||||
ATOM 461 H 1 1 27.662 6.895 22.482 0.00 0.00 0
|
||||
ATOM 462 H 1 1 26.971 9.710 21.902 0.00 0.00 0
|
||||
ATOM 463 O 1 1 27.071 6.109 29.555 0.00 0.00 0
|
||||
ATOM 464 H 1 1 27.591 7.663 28.857 0.00 0.00 0
|
||||
ATOM 465 H 1 1 27.304 6.320 31.261 0.00 0.00 0
|
||||
ATOM 466 O 1 1 22.474 11.704 34.640 0.00 0.00 0
|
||||
ATOM 467 H 1 1 22.752 13.304 35.584 0.00 0.00 0
|
||||
ATOM 468 H 1 1 22.840 12.090 33.030 0.00 0.00 0
|
||||
ATOM 469 O 1 1 21.656 14.971 5.615 0.00 0.00 0
|
||||
ATOM 470 H 1 1 21.690 15.860 3.977 0.00 0.00 0
|
||||
ATOM 471 H 1 1 19.964 14.225 5.774 0.00 0.00 0
|
||||
ATOM 472 O 1 1 28.539 21.492 9.820 0.00 0.00 0
|
||||
ATOM 473 H 1 1 27.288 22.181 8.688 0.00 0.00 0
|
||||
ATOM 474 H 1 1 28.065 22.420 11.602 0.00 0.00 0
|
||||
ATOM 475 O 1 1 28.364 16.020 11.109 0.00 0.00 0
|
||||
ATOM 476 H 1 1 30.033 16.649 12.089 0.00 0.00 0
|
||||
ATOM 477 H 1 1 28.456 17.440 10.082 0.00 0.00 0
|
||||
ATOM 478 O 1 1 0.054 13.686 18.103 0.00 0.00 0
|
||||
ATOM 479 H 1 1 -1.714 12.928 18.841 0.00 0.00 0
|
||||
ATOM 480 H 1 1 1.008 12.429 17.383 0.00 0.00 0
|
||||
ATOM 481 O 1 1 24.636 12.894 29.957 0.00 0.00 0
|
||||
ATOM 482 H 1 1 25.906 13.914 31.183 0.00 0.00 0
|
||||
ATOM 483 H 1 1 25.641 11.609 29.162 0.00 0.00 0
|
||||
ATOM 484 O 1 1 21.548 17.250 0.749 0.00 0.00 0
|
||||
ATOM 485 H 1 1 21.843 19.026 0.905 0.00 0.00 0
|
||||
ATOM 486 H 1 1 20.385 16.716 -0.697 0.00 0.00 0
|
||||
ATOM 487 O 1 1 26.095 27.274 4.520 0.00 0.00 0
|
||||
ATOM 488 H 1 1 27.889 26.458 4.505 0.00 0.00 0
|
||||
ATOM 489 H 1 1 25.648 26.970 6.165 0.00 0.00 0
|
||||
ATOM 490 O 1 1 23.610 22.515 8.008 0.00 0.00 0
|
||||
ATOM 491 H 1 1 22.653 21.187 8.739 0.00 0.00 0
|
||||
ATOM 492 H 1 1 22.286 24.095 8.444 0.00 0.00 0
|
||||
ATOM 493 O 1 1 27.355 18.929 18.180 0.00 0.00 0
|
||||
ATOM 494 H 1 1 27.200 20.349 17.155 0.00 0.00 0
|
||||
ATOM 495 H 1 1 25.579 18.322 18.770 0.00 0.00 0
|
||||
ATOM 496 O 1 1 26.765 23.633 14.444 0.00 0.00 0
|
||||
ATOM 497 H 1 1 27.441 25.298 13.651 0.00 0.00 0
|
||||
ATOM 498 H 1 1 25.086 24.256 14.749 0.00 0.00 0
|
||||
ATOM 499 O 1 1 31.478 20.769 20.986 0.00 0.00 0
|
||||
ATOM 500 H 1 1 30.440 22.509 21.135 0.00 0.00 0
|
||||
ATOM 501 H 1 1 30.567 19.656 20.043 0.00 0.00 0
|
||||
ATOM 502 O 1 1 24.812 20.412 32.668 0.00 0.00 0
|
||||
ATOM 503 H 1 1 26.242 21.478 31.874 0.00 0.00 0
|
||||
ATOM 504 H 1 1 25.787 19.023 33.158 0.00 0.00 0
|
||||
ATOM 505 O 1 1 22.105 29.076 0.928 0.00 0.00 0
|
||||
ATOM 506 H 1 1 23.296 27.923 1.739 0.00 0.00 0
|
||||
ATOM 507 H 1 1 22.623 30.994 0.882 0.00 0.00 0
|
||||
ATOM 508 O 1 1 29.572 31.256 8.626 0.00 0.00 0
|
||||
ATOM 509 H 1 1 30.795 30.203 7.736 0.00 0.00 0
|
||||
ATOM 510 H 1 1 28.277 31.519 7.260 0.00 0.00 0
|
||||
ATOM 511 O 1 1 31.817 34.843 18.283 0.00 0.00 0
|
||||
ATOM 512 H 1 1 32.438 34.389 16.474 0.00 0.00 0
|
||||
ATOM 513 H 1 1 32.743 36.422 18.341 0.00 0.00 0
|
||||
ATOM 514 O 1 1 27.915 25.601 19.033 0.00 0.00 0
|
||||
ATOM 515 H 1 1 29.358 26.561 19.190 0.00 0.00 0
|
||||
ATOM 516 H 1 1 28.148 24.429 17.530 0.00 0.00 0
|
||||
ATOM 517 O 1 1 24.548 24.654 24.025 0.00 0.00 0
|
||||
ATOM 518 H 1 1 25.528 25.635 22.824 0.00 0.00 0
|
||||
ATOM 519 H 1 1 25.300 25.200 25.645 0.00 0.00 0
|
||||
ATOM 520 O 1 1 28.540 22.922 30.370 0.00 0.00 0
|
||||
ATOM 521 H 1 1 27.414 24.096 29.781 0.00 0.00 0
|
||||
ATOM 522 H 1 1 29.674 23.914 31.873 0.00 0.00 0
|
||||
ATOM 523 O 1 1 24.969 33.623 1.014 0.00 0.00 0
|
||||
ATOM 524 H 1 1 26.521 33.058 1.518 0.00 0.00 0
|
||||
ATOM 525 H 1 1 24.990 34.322 -0.683 0.00 0.00 0
|
||||
ATOM 526 O 1 1 23.075 32.171 11.324 0.00 0.00 0
|
||||
ATOM 527 H 1 1 23.316 32.775 13.097 0.00 0.00 0
|
||||
ATOM 528 H 1 1 24.460 33.203 10.662 0.00 0.00 0
|
||||
ATOM 529 O 1 1 27.497 2.736 17.224 0.00 0.00 0
|
||||
ATOM 530 H 1 1 28.397 3.415 15.715 0.00 0.00 0
|
||||
ATOM 531 H 1 1 28.234 1.233 17.412 0.00 0.00 0
|
||||
ATOM 532 O 1 1 26.369 33.060 22.077 0.00 0.00 0
|
||||
ATOM 533 H 1 1 26.170 34.746 22.264 0.00 0.00 0
|
||||
ATOM 534 H 1 1 27.592 32.404 23.321 0.00 0.00 0
|
||||
ATOM 535 O 1 1 30.221 30.950 25.843 0.00 0.00 0
|
||||
ATOM 536 H 1 1 30.305 29.038 26.208 0.00 0.00 0
|
||||
ATOM 537 H 1 1 30.363 31.979 27.414 0.00 0.00 0
|
||||
ATOM 538 O 1 1 24.973 26.732 28.607 0.00 0.00 0
|
||||
ATOM 539 H 1 1 25.385 28.369 29.248 0.00 0.00 0
|
||||
ATOM 540 H 1 1 23.330 26.597 29.234 0.00 0.00 0
|
||||
ATOM 541 O 1 1 32.165 4.857 2.258 0.00 0.00 0
|
||||
ATOM 542 H 1 1 32.417 6.195 1.157 0.00 0.00 0
|
||||
ATOM 543 H 1 1 32.615 3.727 1.112 0.00 0.00 0
|
||||
ATOM 544 O 1 1 28.067 3.533 5.217 0.00 0.00 0
|
||||
ATOM 545 H 1 1 26.960 4.447 4.158 0.00 0.00 0
|
||||
ATOM 546 H 1 1 29.875 3.863 4.448 0.00 0.00 0
|
||||
ATOM 547 O 1 1 33.279 2.782 13.028 0.00 0.00 0
|
||||
ATOM 548 H 1 1 33.708 3.955 11.817 0.00 0.00 0
|
||||
ATOM 549 H 1 1 33.656 3.545 14.631 0.00 0.00 0
|
||||
ATOM 550 O 1 1 34.278 4.944 17.492 0.00 0.00 0
|
||||
ATOM 551 H 1 1 33.438 6.563 17.876 0.00 0.00 0
|
||||
ATOM 552 H 1 1 34.906 4.452 18.995 0.00 0.00 0
|
||||
ATOM 553 O 1 1 32.363 1.908 26.092 0.00 0.00 0
|
||||
ATOM 554 H 1 1 31.941 1.683 24.268 0.00 0.00 0
|
||||
ATOM 555 H 1 1 33.850 1.390 26.904 0.00 0.00 0
|
||||
ATOM 556 O 1 1 27.982 0.418 28.241 0.00 0.00 0
|
||||
ATOM 557 H 1 1 27.516 2.080 28.309 0.00 0.00 0
|
||||
ATOM 558 H 1 1 29.593 0.176 27.299 0.00 0.00 0
|
||||
ATOM 559 O 1 1 28.845 14.672 2.724 0.00 0.00 0
|
||||
ATOM 560 H 1 1 27.963 13.930 4.139 0.00 0.00 0
|
||||
ATOM 561 H 1 1 30.386 15.714 3.379 0.00 0.00 0
|
||||
ATOM 562 O 1 1 28.083 10.618 14.298 0.00 0.00 0
|
||||
ATOM 563 H 1 1 28.623 12.160 13.293 0.00 0.00 0
|
||||
ATOM 564 H 1 1 26.486 11.015 15.379 0.00 0.00 0
|
||||
ATOM 565 O 1 1 33.867 10.545 13.306 0.00 0.00 0
|
||||
ATOM 566 H 1 1 35.165 9.612 13.810 0.00 0.00 0
|
||||
ATOM 567 H 1 1 33.615 10.270 11.513 0.00 0.00 0
|
||||
ATOM 568 O 1 1 31.790 9.696 18.223 0.00 0.00 0
|
||||
ATOM 569 H 1 1 30.484 9.334 19.421 0.00 0.00 0
|
||||
ATOM 570 H 1 1 30.834 10.096 16.929 0.00 0.00 0
|
||||
ATOM 571 O 1 1 30.141 15.006 21.532 0.00 0.00 0
|
||||
ATOM 572 H 1 1 28.565 15.594 22.099 0.00 0.00 0
|
||||
ATOM 573 H 1 1 30.942 14.253 23.077 0.00 0.00 0
|
||||
ATOM 574 O 1 1 32.798 10.732 30.680 0.00 0.00 0
|
||||
ATOM 575 H 1 1 34.073 9.528 30.799 0.00 0.00 0
|
||||
ATOM 576 H 1 1 32.991 11.512 28.983 0.00 0.00 0
|
||||
ATOM 577 O 1 1 33.652 16.265 5.086 0.00 0.00 0
|
||||
ATOM 578 H 1 1 35.399 16.239 4.730 0.00 0.00 0
|
||||
ATOM 579 H 1 1 33.503 17.939 5.631 0.00 0.00 0
|
||||
ATOM 580 O 1 1 31.947 10.799 7.943 0.00 0.00 0
|
||||
ATOM 581 H 1 1 29.894 10.549 7.619 0.00 0.00 0
|
||||
ATOM 582 H 1 1 32.271 12.414 7.075 0.00 0.00 0
|
||||
ATOM 583 O 1 1 0.329 15.516 11.746 0.00 0.00 0
|
||||
ATOM 584 H 1 1 -0.446 14.249 12.939 0.00 0.00 0
|
||||
ATOM 585 H 1 1 -0.685 17.018 11.935 0.00 0.00 0
|
||||
ATOM 586 O 1 1 4.262 19.165 14.308 0.00 0.00 0
|
||||
ATOM 587 H 1 1 3.579 17.691 14.920 0.00 0.00 0
|
||||
ATOM 588 H 1 1 5.723 19.183 15.204 0.00 0.00 0
|
||||
ATOM 589 O 1 1 32.995 13.546 25.948 0.00 0.00 0
|
||||
ATOM 590 H 1 1 32.167 15.060 26.787 0.00 0.00 0
|
||||
ATOM 591 H 1 1 34.425 13.800 25.007 0.00 0.00 0
|
||||
ATOM 592 O 1 1 1.773 13.524 34.037 0.00 0.00 0
|
||||
ATOM 593 H 1 1 0.227 14.409 33.446 0.00 0.00 0
|
||||
ATOM 594 H 1 1 2.167 14.670 35.511 0.00 0.00 0
|
||||
ATOM 595 O 1 1 33.029 20.529 7.247 0.00 0.00 0
|
||||
ATOM 596 H 1 1 34.388 21.414 8.003 0.00 0.00 0
|
||||
ATOM 597 H 1 1 31.451 20.831 8.182 0.00 0.00 0
|
||||
ATOM 598 O 1 1 2.037 24.250 10.251 0.00 0.00 0
|
||||
ATOM 599 H 1 1 3.743 25.008 9.876 0.00 0.00 0
|
||||
ATOM 600 H 1 1 1.894 25.043 11.903 0.00 0.00 0
|
||||
ATOM 601 O 1 1 32.753 19.259 13.976 0.00 0.00 0
|
||||
ATOM 602 H 1 1 32.792 20.886 13.792 0.00 0.00 0
|
||||
ATOM 603 H 1 1 34.334 18.799 14.976 0.00 0.00 0
|
||||
ATOM 604 O 1 1 0.396 18.673 18.699 0.00 0.00 0
|
||||
ATOM 605 H 1 1 -1.211 18.950 19.127 0.00 0.00 0
|
||||
ATOM 606 H 1 1 0.469 16.977 18.436 0.00 0.00 0
|
||||
ATOM 607 O 1 1 30.855 18.370 27.959 0.00 0.00 0
|
||||
ATOM 608 H 1 1 29.759 19.681 28.690 0.00 0.00 0
|
||||
ATOM 609 H 1 1 32.103 19.477 26.763 0.00 0.00 0
|
||||
ATOM 610 O 1 1 27.723 15.992 33.091 0.00 0.00 0
|
||||
ATOM 611 H 1 1 29.390 16.423 32.192 0.00 0.00 0
|
||||
ATOM 612 H 1 1 27.801 15.859 34.804 0.00 0.00 0
|
||||
ATOM 613 O 1 1 31.068 27.895 3.348 0.00 0.00 0
|
||||
ATOM 614 H 1 1 32.517 27.825 4.610 0.00 0.00 0
|
||||
ATOM 615 H 1 1 31.529 29.459 2.324 0.00 0.00 0
|
||||
ATOM 616 O 1 1 35.039 28.008 6.663 0.00 0.00 0
|
||||
ATOM 617 H 1 1 35.966 26.934 7.683 0.00 0.00 0
|
||||
ATOM 618 H 1 1 36.055 28.336 5.336 0.00 0.00 0
|
||||
ATOM 619 O 1 1 29.356 28.196 13.025 0.00 0.00 0
|
||||
ATOM 620 H 1 1 29.210 29.335 14.589 0.00 0.00 0
|
||||
ATOM 621 H 1 1 28.874 29.629 11.867 0.00 0.00 0
|
||||
ATOM 622 O 1 1 32.386 28.434 18.961 0.00 0.00 0
|
||||
ATOM 623 H 1 1 33.368 28.574 20.411 0.00 0.00 0
|
||||
ATOM 624 H 1 1 33.410 27.406 17.949 0.00 0.00 0
|
||||
ATOM 625 O 1 1 30.898 25.390 25.799 0.00 0.00 0
|
||||
ATOM 626 H 1 1 32.369 25.913 24.580 0.00 0.00 0
|
||||
ATOM 627 H 1 1 31.317 24.075 27.029 0.00 0.00 0
|
||||
ATOM 628 O 1 1 32.259 25.611 33.104 0.00 0.00 0
|
||||
ATOM 629 H 1 1 32.238 25.736 34.806 0.00 0.00 0
|
||||
ATOM 630 H 1 1 33.920 25.042 32.775 0.00 0.00 0
|
||||
ATOM 631 O 1 1 30.290 32.645 1.341 0.00 0.00 0
|
||||
ATOM 632 H 1 1 29.949 32.793 -0.430 0.00 0.00 0
|
||||
ATOM 633 H 1 1 31.762 33.340 1.847 0.00 0.00 0
|
||||
ATOM 634 O 1 1 25.536 34.235 6.469 0.00 0.00 0
|
||||
ATOM 635 H 1 1 25.716 36.059 6.651 0.00 0.00 0
|
||||
ATOM 636 H 1 1 25.283 33.866 4.895 0.00 0.00 0
|
||||
ATOM 637 O 1 1 31.674 33.161 13.106 0.00 0.00 0
|
||||
ATOM 638 H 1 1 31.793 34.863 13.281 0.00 0.00 0
|
||||
ATOM 639 H 1 1 30.425 32.928 11.783 0.00 0.00 0
|
||||
ATOM 640 O 1 1 33.844 32.668 22.296 0.00 0.00 0
|
||||
ATOM 641 H 1 1 32.750 32.234 23.524 0.00 0.00 0
|
||||
ATOM 642 H 1 1 32.917 32.875 20.736 0.00 0.00 0
|
||||
ATOM 643 O 1 1 31.603 30.542 30.805 0.00 0.00 0
|
||||
ATOM 644 H 1 1 33.451 30.804 30.468 0.00 0.00 0
|
||||
ATOM 645 H 1 1 31.575 28.816 31.756 0.00 0.00 0
|
||||
ATOM 646 O 1 1 26.295 31.235 30.599 0.00 0.00 0
|
||||
ATOM 647 H 1 1 27.834 30.515 30.607 0.00 0.00 0
|
||||
ATOM 648 H 1 1 26.362 32.920 29.856 0.00 0.00 0
|
||||
END
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,32 +0,0 @@
|
||||
units electron
|
||||
atom_style full
|
||||
|
||||
#pair_style lj/cut/coul/long 17.01
|
||||
pair_style lj/cut/tip4p/long 1 2 1 1 0.278072379 17.007
|
||||
#bond_style harmonic
|
||||
bond_style class2
|
||||
angle_style harmonic
|
||||
#kspace_style pppm 0.0001
|
||||
kspace_style pppm/tip4p 0.0001
|
||||
|
||||
read_data data.water
|
||||
pair_coeff * * 0 0
|
||||
pair_coeff 1 1 0.000295147 5.96946
|
||||
|
||||
neighbor 2.0 bin
|
||||
|
||||
timestep 0.00025
|
||||
|
||||
#velocity all create 298.0 2345187
|
||||
|
||||
#thermo_style multi
|
||||
#thermo 1
|
||||
|
||||
#fix 1 all nvt temp 298.0 298.0 30.0 tchain 1
|
||||
#fix 1 all nve
|
||||
fix 1 all ipi piglet_4 32343 unix
|
||||
|
||||
#dump 1 all xyz 25 dump.xyz
|
||||
|
||||
run 100000000
|
||||
|
||||
@ -1,40 +0,0 @@
|
||||
<simulation>
|
||||
<initialize nbeads='4'>
|
||||
<file mode='pdb'> water_298K.pdb </file>
|
||||
<velocities mode="thermal" units='kelvin'> 298 </velocities>
|
||||
</initialize>
|
||||
<output prefix='gle_lammps'>
|
||||
<properties stride='1' filename='out'> [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] </properties>
|
||||
<trajectory filename='pos' stride='20'> positions </trajectory>
|
||||
</output>
|
||||
<total_steps>500000</total_steps>
|
||||
<prng><seed>32343</seed></prng>
|
||||
<forces>
|
||||
<socket mode='unix'>
|
||||
<address>piglet_4</address>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='nm_gle'>
|
||||
<A shape='(4,9,9)'>
|
||||
[
|
||||
1.300513766690e-2, 9.078220950722e-6, 8.180522706851e-6, 1.196620464216e-5, 1.108609196233e-4, -8.941338246404e-4, 7.817382329484e-3, -1.206049888192e-2, -5.215913547478e-2, -9.756343549369e-6, 2.131200614277e-7, 2.972243541454e-6, -4.459298032276e-6, 2.177011229810e-7, 4.960251269751e-7, -2.083064995647e-6, -7.004617074013e-6, 2.299410255689e-5, -1.851243089560e-6, -2.972243541454e-6, 1.956991859501e-6, 1.742357040415e-6, -2.082265548357e-6, -1.760771137012e-6, -3.733162998255e-6, -3.711884630223e-5, -3.625483838477e-5, 1.492481502899e-5, 4.459298032276e-6, -1.742357040415e-6, 5.092476869103e-6, 2.033910859306e-6, 5.856365217540e-7, -3.020170664006e-6, 1.868034354962e-5, -5.049113665348e-6, 1.059383195368e-4, -2.177011229810e-7, 2.082265548357e-6, -2.033910859306e-6, 5.467813757620e-5, -6.684243951800e-6, -9.770331146786e-7, -2.159991642805e-4, 4.667176340213e-4, -7.611448585233e-4, -4.960251269751e-7, 1.760771137012e-6, -5.856365217540e-7, 6.684243951800e-6, 6.616597356640e-4, -1.637891086976e-6, -2.056652206438e-4, 2.960975881160e-4, 7.659946833472e-3, 2.083064995647e-6, 3.733162998255e-6, 3.020170664006e-6, 9.770331146786e-7, 1.637891086976e-6, 6.390977118535e-3, -6.246090363901e-5, 5.054994461623e-4, -1.078245092236e-2, 7.004617074013e-6, 3.711884630223e-5, -1.868034354962e-5, 2.159991642805e-4, 2.056652206438e-4, 6.246090363901e-5, 1.730397061203e-1, 1.004651317366e-4, -5.467410217589e-2, -2.299410255689e-5, 3.625483838477e-5, 5.049113665348e-6, -4.667176340213e-4, -2.960975881160e-4, -5.054994461623e-4, -1.004651317366e-4, 1.795223909984e+0,
|
||||
7.566936336534e-6, 6.338019063098e-3, 0.000000000000e+0, 1.060374810427e-2, 0.000000000000e+0, 4.208955410918e-3, 0.000000000000e+0, 8.082827448553e-5, 0.000000000000e+0, -6.338019063098e-3, 7.358306814484e-2, 2.945862869452e-2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -2.945862869452e-2, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.060374810427e-2, 0.000000000000e+0, 0.000000000000e+0, 1.487651276141e-2, 5.463360757376e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -5.463360757376e-3, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.208955410918e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 4.130761028108e-2, 1.462832567462e-2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.462832567462e-2, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, -8.082827448553e-5, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.105282519359e-3, 1.090072581774e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.090072581774e-3, 1.924557597624e-14,
|
||||
7.566936336534e-6, 6.338019063098e-3, 0.000000000000e+0, 1.060374810427e-2, 0.000000000000e+0, 4.208955410918e-3, 0.000000000000e+0, 8.082827448553e-5, 0.000000000000e+0, -6.338019063098e-3, 7.358306814484e-2, 2.945862869452e-2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -2.945862869452e-2, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.060374810427e-2, 0.000000000000e+0, 0.000000000000e+0, 1.487651276141e-2, 5.463360757376e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -5.463360757376e-3, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.208955410918e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 4.130761028108e-2, 1.462832567462e-2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.462832567462e-2, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, -8.082827448553e-5, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.105282519359e-3, 1.090072581774e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.090072581774e-3, 1.924557597624e-14,
|
||||
7.566936336534e-6, 6.338019063098e-3, 0.000000000000e+0, 1.060374810427e-2, 0.000000000000e+0, 4.208955410918e-3, 0.000000000000e+0, 8.082827448553e-5, 0.000000000000e+0, -6.338019063098e-3, 7.358306814484e-2, 2.945862869452e-2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -2.945862869452e-2, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.060374810427e-2, 0.000000000000e+0, 0.000000000000e+0, 1.487651276141e-2, 5.463360757376e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -5.463360757376e-3, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.208955410918e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 4.130761028108e-2, 1.462832567462e-2, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.462832567462e-2, 1.924557597624e-14, 0.000000000000e+0, 0.000000000000e+0, -8.082827448553e-5, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.105282519359e-3, 1.090072581774e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.090072581774e-3, 1.924557597624e-14
|
||||
]
|
||||
</A>
|
||||
<C shape='(4,9,9)' units='kelvin'>
|
||||
[
|
||||
1.192000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 1.192000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 1.192000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 1.192000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 1.192000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 1.192000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 1.192000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 1.192000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 1.192000000000e+3,
|
||||
1.974745232194e+3, -2.047141324480e+2, -1.465776544626e+3, 5.611692742600e+2, 2.600211572322e+2, -1.099491161786e+3, -3.093580205740e+3, -3.861032202200e+2, -1.067404178368e+3, -2.047141324480e+2, 1.087575551624e+4, 6.721323835060e-9, 2.021884782970e+2, 1.075739781622e+2, -7.437996121940e+1, -1.600458223938e+1, -1.059816853114e+1, 2.076593606756e+0, -1.465776544626e+3, 6.719263290220e-9, 1.056039393790e+4, -5.800425818660e+2, -1.752619163876e+2, 3.223014416760e+1, -6.625413068480e+2, -5.611883191420e+1, -2.352310083702e+2, 5.611692742600e+2, 2.021884782970e+2, -5.800425818660e+2, 8.662918193440e+2, 3.799597913860e-9, 1.716248402446e+2, -1.504572868414e+3, -2.864411056124e+2, -4.191189710000e+1, 2.600211572322e+2, 1.075739781622e+2, -1.752619163876e+2, 3.799720946140e-9, 1.370962657638e+3, 5.619251682460e+2, -1.447856743746e+3, 2.100592360296e+2, -2.014734930954e+3, -1.099491161786e+3, -7.437996121940e+1, 3.223014416760e+1, 1.716248402446e+2, 5.619251682460e+2, 2.319917706904e+4, 2.896113582292e-8, -1.931536922152e+1, 4.385447956380e+0, -3.093580205740e+3, -1.600458223938e+1, -6.625413068480e+2, -1.504572868414e+3, -1.447856743746e+3, 2.896343709812e-8, 2.230907239094e+4, -5.885090774480e+1, -3.209433686600e+2, -3.861032202200e+2, -1.059816853114e+1, -5.611883191420e+1, -2.864411056124e+2, 2.100592360296e+2, -1.931536922152e+1, -5.885090774480e+1, 7.065427000840e+4, 1.240853151798e-6, -1.067404178368e+3, 2.076593606756e+0, -2.352310083702e+2, -4.191189710000e+1, -2.014734930954e+3, 4.385447956380e+0, -3.209433686600e+2, 1.240861621554e-6, 7.057512257920e+4,
|
||||
1.974745232194e+3, -2.047141324480e+2, -1.465776544626e+3, 5.611692742600e+2, 2.600211572322e+2, -1.099491161786e+3, -3.093580205740e+3, -3.861032202200e+2, -1.067404178368e+3, -2.047141324480e+2, 1.087575551624e+4, 6.721323835060e-9, 2.021884782970e+2, 1.075739781622e+2, -7.437996121940e+1, -1.600458223938e+1, -1.059816853114e+1, 2.076593606756e+0, -1.465776544626e+3, 6.719263290220e-9, 1.056039393790e+4, -5.800425818660e+2, -1.752619163876e+2, 3.223014416760e+1, -6.625413068480e+2, -5.611883191420e+1, -2.352310083702e+2, 5.611692742600e+2, 2.021884782970e+2, -5.800425818660e+2, 8.662918193440e+2, 3.799597913860e-9, 1.716248402446e+2, -1.504572868414e+3, -2.864411056124e+2, -4.191189710000e+1, 2.600211572322e+2, 1.075739781622e+2, -1.752619163876e+2, 3.799720946140e-9, 1.370962657638e+3, 5.619251682460e+2, -1.447856743746e+3, 2.100592360296e+2, -2.014734930954e+3, -1.099491161786e+3, -7.437996121940e+1, 3.223014416760e+1, 1.716248402446e+2, 5.619251682460e+2, 2.319917706904e+4, 2.896113582292e-8, -1.931536922152e+1, 4.385447956380e+0, -3.093580205740e+3, -1.600458223938e+1, -6.625413068480e+2, -1.504572868414e+3, -1.447856743746e+3, 2.896343709812e-8, 2.230907239094e+4, -5.885090774480e+1, -3.209433686600e+2, -3.861032202200e+2, -1.059816853114e+1, -5.611883191420e+1, -2.864411056124e+2, 2.100592360296e+2, -1.931536922152e+1, -5.885090774480e+1, 7.065427000840e+4, 1.240853151798e-6, -1.067404178368e+3, 2.076593606756e+0, -2.352310083702e+2, -4.191189710000e+1, -2.014734930954e+3, 4.385447956380e+0, -3.209433686600e+2, 1.240861621554e-6, 7.057512257920e+4,
|
||||
1.974745232194e+3, -2.047141324480e+2, -1.465776544626e+3, 5.611692742600e+2, 2.600211572322e+2, -1.099491161786e+3, -3.093580205740e+3, -3.861032202200e+2, -1.067404178368e+3, -2.047141324480e+2, 1.087575551624e+4, 6.721323835060e-9, 2.021884782970e+2, 1.075739781622e+2, -7.437996121940e+1, -1.600458223938e+1, -1.059816853114e+1, 2.076593606756e+0, -1.465776544626e+3, 6.719263290220e-9, 1.056039393790e+4, -5.800425818660e+2, -1.752619163876e+2, 3.223014416760e+1, -6.625413068480e+2, -5.611883191420e+1, -2.352310083702e+2, 5.611692742600e+2, 2.021884782970e+2, -5.800425818660e+2, 8.662918193440e+2, 3.799597913860e-9, 1.716248402446e+2, -1.504572868414e+3, -2.864411056124e+2, -4.191189710000e+1, 2.600211572322e+2, 1.075739781622e+2, -1.752619163876e+2, 3.799720946140e-9, 1.370962657638e+3, 5.619251682460e+2, -1.447856743746e+3, 2.100592360296e+2, -2.014734930954e+3, -1.099491161786e+3, -7.437996121940e+1, 3.223014416760e+1, 1.716248402446e+2, 5.619251682460e+2, 2.319917706904e+4, 2.896113582292e-8, -1.931536922152e+1, 4.385447956380e+0, -3.093580205740e+3, -1.600458223938e+1, -6.625413068480e+2, -1.504572868414e+3, -1.447856743746e+3, 2.896343709812e-8, 2.230907239094e+4, -5.885090774480e+1, -3.209433686600e+2, -3.861032202200e+2, -1.059816853114e+1, -5.611883191420e+1, -2.864411056124e+2, 2.100592360296e+2, -1.931536922152e+1, -5.885090774480e+1, 7.065427000840e+4, 1.240853151798e-6, -1.067404178368e+3, 2.076593606756e+0, -2.352310083702e+2, -4.191189710000e+1, -2.014734930954e+3, 4.385447956380e+0, -3.209433686600e+2, 1.240861621554e-6, 7.057512257920e+4
|
||||
]
|
||||
</C>
|
||||
</thermostat>
|
||||
|
||||
<timestep units='femtosecond'> 0.1</timestep>
|
||||
<temperature units='kelvin'>298</temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,650 +0,0 @@
|
||||
CRYST 35.233 35.233 35.233 90.00 90.00 90.00 P 1 1
|
||||
ATOM 1 O 1 1 3.846 5.672 1.323 0.00 0.00 0
|
||||
ATOM 2 H 1 1 2.979 7.054 0.857 0.00 0.00 0
|
||||
ATOM 3 H 1 1 5.525 5.697 0.451 0.00 0.00 0
|
||||
ATOM 4 O 1 1 34.557 34.341 3.078 0.00 0.00 0
|
||||
ATOM 5 H 1 1 33.722 34.689 4.840 0.00 0.00 0
|
||||
ATOM 6 H 1 1 36.029 33.220 3.711 0.00 0.00 0
|
||||
ATOM 7 O 1 1 5.591 1.963 13.477 0.00 0.00 0
|
||||
ATOM 8 H 1 1 7.265 1.864 13.851 0.00 0.00 0
|
||||
ATOM 9 H 1 1 5.009 3.555 13.916 0.00 0.00 0
|
||||
ATOM 10 O 1 1 1.060 2.061 21.718 0.00 0.00 0
|
||||
ATOM 11 H 1 1 0.757 0.261 21.820 0.00 0.00 0
|
||||
ATOM 12 H 1 1 0.213 3.013 23.047 0.00 0.00 0
|
||||
ATOM 13 O 1 1 1.200 1.337 29.006 0.00 0.00 0
|
||||
ATOM 14 H 1 1 0.818 1.884 30.732 0.00 0.00 0
|
||||
ATOM 15 H 1 1 2.883 1.825 29.011 0.00 0.00 0
|
||||
ATOM 16 O 1 1 1.331 1.386 34.306 0.00 0.00 0
|
||||
ATOM 17 H 1 1 2.392 2.898 34.846 0.00 0.00 0
|
||||
ATOM 18 H 1 1 0.814 0.532 35.836 0.00 0.00 0
|
||||
ATOM 19 O 1 1 31.451 10.201 0.726 0.00 0.00 0
|
||||
ATOM 20 H 1 1 32.282 10.877 -0.750 0.00 0.00 0
|
||||
ATOM 21 H 1 1 30.920 11.594 1.677 0.00 0.00 0
|
||||
ATOM 22 O 1 1 0.836 10.808 4.298 0.00 0.00 0
|
||||
ATOM 23 H 1 1 0.305 10.643 2.793 0.00 0.00 0
|
||||
ATOM 24 H 1 1 -0.356 10.334 5.524 0.00 0.00 0
|
||||
ATOM 25 O 1 1 34.381 5.979 9.194 0.00 0.00 0
|
||||
ATOM 26 H 1 1 33.616 7.673 8.857 0.00 0.00 0
|
||||
ATOM 27 H 1 1 35.115 5.260 7.618 0.00 0.00 0
|
||||
ATOM 28 O 1 1 33.212 6.480 24.278 0.00 0.00 0
|
||||
ATOM 29 H 1 1 31.624 6.908 23.521 0.00 0.00 0
|
||||
ATOM 30 H 1 1 32.544 4.990 24.982 0.00 0.00 0
|
||||
ATOM 31 O 1 1 1.992 9.002 26.863 0.00 0.00 0
|
||||
ATOM 32 H 1 1 1.856 10.175 25.579 0.00 0.00 0
|
||||
ATOM 33 H 1 1 0.519 8.099 26.386 0.00 0.00 0
|
||||
ATOM 34 O 1 1 2.054 8.660 32.515 0.00 0.00 0
|
||||
ATOM 35 H 1 1 2.167 8.727 30.494 0.00 0.00 0
|
||||
ATOM 36 H 1 1 2.374 10.513 33.038 0.00 0.00 0
|
||||
ATOM 37 O 1 1 3.402 16.639 3.008 0.00 0.00 0
|
||||
ATOM 38 H 1 1 4.127 15.872 4.446 0.00 0.00 0
|
||||
ATOM 39 H 1 1 2.905 18.339 3.160 0.00 0.00 0
|
||||
ATOM 40 O 1 1 4.222 15.444 8.072 0.00 0.00 0
|
||||
ATOM 41 H 1 1 5.211 16.756 8.299 0.00 0.00 0
|
||||
ATOM 42 H 1 1 2.560 15.492 8.860 0.00 0.00 0
|
||||
ATOM 43 O 1 1 2.831 9.246 16.488 0.00 0.00 0
|
||||
ATOM 44 H 1 1 2.869 8.023 18.050 0.00 0.00 0
|
||||
ATOM 45 H 1 1 3.960 8.467 15.154 0.00 0.00 0
|
||||
ATOM 46 O 1 1 5.563 6.003 20.907 0.00 0.00 0
|
||||
ATOM 47 H 1 1 4.653 4.638 21.480 0.00 0.00 0
|
||||
ATOM 48 H 1 1 6.405 6.208 22.529 0.00 0.00 0
|
||||
ATOM 49 O 1 1 2.087 13.370 22.913 0.00 0.00 0
|
||||
ATOM 50 H 1 1 2.832 14.804 23.422 0.00 0.00 0
|
||||
ATOM 51 H 1 1 1.434 13.509 21.196 0.00 0.00 0
|
||||
ATOM 52 O 1 1 3.369 17.886 25.109 0.00 0.00 0
|
||||
ATOM 53 H 1 1 3.655 17.200 26.766 0.00 0.00 0
|
||||
ATOM 54 H 1 1 4.772 18.977 24.500 0.00 0.00 0
|
||||
ATOM 55 O 1 1 34.764 20.803 0.948 0.00 0.00 0
|
||||
ATOM 56 H 1 1 35.210 21.267 2.816 0.00 0.00 0
|
||||
ATOM 57 H 1 1 35.962 21.726 0.131 0.00 0.00 0
|
||||
ATOM 58 O 1 1 2.836 24.178 15.229 0.00 0.00 0
|
||||
ATOM 59 H 1 1 2.795 22.346 14.876 0.00 0.00 0
|
||||
ATOM 60 H 1 1 2.414 24.115 17.130 0.00 0.00 0
|
||||
ATOM 61 O 1 1 33.000 24.481 15.230 0.00 0.00 0
|
||||
ATOM 62 H 1 1 34.640 24.804 15.013 0.00 0.00 0
|
||||
ATOM 63 H 1 1 32.401 25.764 14.295 0.00 0.00 0
|
||||
ATOM 64 O 1 1 0.404 26.779 23.400 0.00 0.00 0
|
||||
ATOM 65 H 1 1 1.353 27.248 24.987 0.00 0.00 0
|
||||
ATOM 66 H 1 1 1.546 28.050 22.317 0.00 0.00 0
|
||||
ATOM 67 O 1 1 34.222 21.380 25.418 0.00 0.00 0
|
||||
ATOM 68 H 1 1 35.669 20.151 25.317 0.00 0.00 0
|
||||
ATOM 69 H 1 1 32.960 21.180 23.992 0.00 0.00 0
|
||||
ATOM 70 O 1 1 33.259 17.438 32.480 0.00 0.00 0
|
||||
ATOM 71 H 1 1 33.314 18.782 33.883 0.00 0.00 0
|
||||
ATOM 72 H 1 1 32.743 18.181 30.871 0.00 0.00 0
|
||||
ATOM 73 O 1 1 4.463 21.979 3.936 0.00 0.00 0
|
||||
ATOM 74 H 1 1 5.856 23.084 3.400 0.00 0.00 0
|
||||
ATOM 75 H 1 1 3.986 22.180 5.602 0.00 0.00 0
|
||||
ATOM 76 O 1 1 6.258 25.851 8.520 0.00 0.00 0
|
||||
ATOM 77 H 1 1 5.767 27.693 8.476 0.00 0.00 0
|
||||
ATOM 78 H 1 1 7.202 25.506 10.186 0.00 0.00 0
|
||||
ATOM 79 O 1 1 0.601 29.737 12.747 0.00 0.00 0
|
||||
ATOM 80 H 1 1 -0.685 30.842 12.350 0.00 0.00 0
|
||||
ATOM 81 H 1 1 1.336 30.716 14.031 0.00 0.00 0
|
||||
ATOM 82 O 1 1 7.563 28.191 24.333 0.00 0.00 0
|
||||
ATOM 83 H 1 1 9.201 28.828 24.684 0.00 0.00 0
|
||||
ATOM 84 H 1 1 7.381 27.621 22.799 0.00 0.00 0
|
||||
ATOM 85 O 1 1 3.653 27.109 27.772 0.00 0.00 0
|
||||
ATOM 86 H 1 1 5.126 27.015 26.772 0.00 0.00 0
|
||||
ATOM 87 H 1 1 3.031 28.756 27.698 0.00 0.00 0
|
||||
ATOM 88 O 1 1 2.596 23.991 32.476 0.00 0.00 0
|
||||
ATOM 89 H 1 1 2.879 24.791 30.859 0.00 0.00 0
|
||||
ATOM 90 H 1 1 4.003 22.913 32.701 0.00 0.00 0
|
||||
ATOM 91 O 1 1 3.083 31.317 3.644 0.00 0.00 0
|
||||
ATOM 92 H 1 1 4.133 30.589 2.539 0.00 0.00 0
|
||||
ATOM 93 H 1 1 4.218 32.173 5.037 0.00 0.00 0
|
||||
ATOM 94 O 1 1 4.661 30.555 9.368 0.00 0.00 0
|
||||
ATOM 95 H 1 1 3.184 29.843 10.132 0.00 0.00 0
|
||||
ATOM 96 H 1 1 4.358 32.448 9.126 0.00 0.00 0
|
||||
ATOM 97 O 1 1 3.465 32.537 15.778 0.00 0.00 0
|
||||
ATOM 98 H 1 1 5.072 31.819 15.903 0.00 0.00 0
|
||||
ATOM 99 H 1 1 4.055 34.257 15.284 0.00 0.00 0
|
||||
ATOM 100 O 1 1 4.215 29.153 20.317 0.00 0.00 0
|
||||
ATOM 101 H 1 1 3.658 30.176 18.842 0.00 0.00 0
|
||||
ATOM 102 H 1 1 4.959 30.291 21.449 0.00 0.00 0
|
||||
ATOM 103 O 1 1 1.126 31.333 28.768 0.00 0.00 0
|
||||
ATOM 104 H 1 1 2.395 31.124 29.925 0.00 0.00 0
|
||||
ATOM 105 H 1 1 0.768 33.092 28.898 0.00 0.00 0
|
||||
ATOM 106 O 1 1 4.881 32.616 32.302 0.00 0.00 0
|
||||
ATOM 107 H 1 1 6.588 32.911 31.725 0.00 0.00 0
|
||||
ATOM 108 H 1 1 4.486 34.037 33.249 0.00 0.00 0
|
||||
ATOM 109 O 1 1 8.962 5.556 0.151 0.00 0.00 0
|
||||
ATOM 110 H 1 1 9.652 6.991 0.859 0.00 0.00 0
|
||||
ATOM 111 H 1 1 9.173 4.477 1.645 0.00 0.00 0
|
||||
ATOM 112 O 1 1 1.833 3.518 5.679 0.00 0.00 0
|
||||
ATOM 113 H 1 1 2.889 2.731 6.788 0.00 0.00 0
|
||||
ATOM 114 H 1 1 2.789 4.187 4.147 0.00 0.00 0
|
||||
ATOM 115 O 1 1 10.510 34.726 13.073 0.00 0.00 0
|
||||
ATOM 116 H 1 1 11.920 34.118 11.919 0.00 0.00 0
|
||||
ATOM 117 H 1 1 11.295 34.968 14.741 0.00 0.00 0
|
||||
ATOM 118 O 1 1 7.212 0.042 22.454 0.00 0.00 0
|
||||
ATOM 119 H 1 1 6.924 0.470 24.172 0.00 0.00 0
|
||||
ATOM 120 H 1 1 8.319 1.228 21.653 0.00 0.00 0
|
||||
ATOM 121 O 1 1 6.365 2.010 27.544 0.00 0.00 0
|
||||
ATOM 122 H 1 1 5.954 3.585 26.852 0.00 0.00 0
|
||||
ATOM 123 H 1 1 7.758 2.549 28.696 0.00 0.00 0
|
||||
ATOM 124 O 1 1 10.833 3.140 30.787 0.00 0.00 0
|
||||
ATOM 125 H 1 1 12.697 2.975 30.867 0.00 0.00 0
|
||||
ATOM 126 H 1 1 10.389 3.700 32.404 0.00 0.00 0
|
||||
ATOM 127 O 1 1 8.684 9.342 3.912 0.00 0.00 0
|
||||
ATOM 128 H 1 1 6.985 9.256 4.773 0.00 0.00 0
|
||||
ATOM 129 H 1 1 8.684 10.809 3.011 0.00 0.00 0
|
||||
ATOM 130 O 1 1 4.873 9.919 7.707 0.00 0.00 0
|
||||
ATOM 131 H 1 1 3.698 9.771 6.194 0.00 0.00 0
|
||||
ATOM 132 H 1 1 5.047 11.961 7.624 0.00 0.00 0
|
||||
ATOM 133 O 1 1 10.031 5.018 9.699 0.00 0.00 0
|
||||
ATOM 134 H 1 1 9.675 3.382 10.340 0.00 0.00 0
|
||||
ATOM 135 H 1 1 9.132 5.987 10.825 0.00 0.00 0
|
||||
ATOM 136 O 1 1 11.246 3.918 21.929 0.00 0.00 0
|
||||
ATOM 137 H 1 1 12.614 2.770 22.341 0.00 0.00 0
|
||||
ATOM 138 H 1 1 12.073 5.686 21.497 0.00 0.00 0
|
||||
ATOM 139 O 1 1 6.825 7.164 25.708 0.00 0.00 0
|
||||
ATOM 140 H 1 1 8.036 8.374 25.980 0.00 0.00 0
|
||||
ATOM 141 H 1 1 5.206 7.900 25.891 0.00 0.00 0
|
||||
ATOM 142 O 1 1 10.171 12.811 0.295 0.00 0.00 0
|
||||
ATOM 143 H 1 1 10.033 12.818 -1.609 0.00 0.00 0
|
||||
ATOM 144 H 1 1 9.880 14.492 0.480 0.00 0.00 0
|
||||
ATOM 145 O 1 1 8.190 17.402 1.253 0.00 0.00 0
|
||||
ATOM 146 H 1 1 9.472 18.531 1.253 0.00 0.00 0
|
||||
ATOM 147 H 1 1 6.351 17.817 1.568 0.00 0.00 0
|
||||
ATOM 148 O 1 1 11.233 16.188 8.299 0.00 0.00 0
|
||||
ATOM 149 H 1 1 10.291 17.689 8.166 0.00 0.00 0
|
||||
ATOM 150 H 1 1 12.768 17.123 8.733 0.00 0.00 0
|
||||
ATOM 151 O 1 1 6.386 8.002 12.846 0.00 0.00 0
|
||||
ATOM 152 H 1 1 7.701 8.896 13.655 0.00 0.00 0
|
||||
ATOM 153 H 1 1 5.591 8.877 11.519 0.00 0.00 0
|
||||
ATOM 154 O 1 1 8.184 10.419 18.848 0.00 0.00 0
|
||||
ATOM 155 H 1 1 9.498 9.434 19.905 0.00 0.00 0
|
||||
ATOM 156 H 1 1 6.882 9.027 18.948 0.00 0.00 0
|
||||
ATOM 157 O 1 1 10.806 14.431 21.328 0.00 0.00 0
|
||||
ATOM 158 H 1 1 9.177 13.531 20.670 0.00 0.00 0
|
||||
ATOM 159 H 1 1 11.344 15.696 20.448 0.00 0.00 0
|
||||
ATOM 160 O 1 1 9.237 13.928 30.341 0.00 0.00 0
|
||||
ATOM 161 H 1 1 10.779 14.839 30.522 0.00 0.00 0
|
||||
ATOM 162 H 1 1 9.965 13.192 28.899 0.00 0.00 0
|
||||
ATOM 163 O 1 1 10.918 21.707 1.864 0.00 0.00 0
|
||||
ATOM 164 H 1 1 10.280 23.449 2.279 0.00 0.00 0
|
||||
ATOM 165 H 1 1 12.708 21.456 1.749 0.00 0.00 0
|
||||
ATOM 166 O 1 1 9.353 16.125 13.927 0.00 0.00 0
|
||||
ATOM 167 H 1 1 9.938 17.594 14.618 0.00 0.00 0
|
||||
ATOM 168 H 1 1 9.518 16.360 12.244 0.00 0.00 0
|
||||
ATOM 169 O 1 1 10.371 11.107 14.268 0.00 0.00 0
|
||||
ATOM 170 H 1 1 9.644 10.406 15.859 0.00 0.00 0
|
||||
ATOM 171 H 1 1 9.434 12.523 14.117 0.00 0.00 0
|
||||
ATOM 172 O 1 1 3.351 22.769 20.196 0.00 0.00 0
|
||||
ATOM 173 H 1 1 2.055 23.686 21.503 0.00 0.00 0
|
||||
ATOM 174 H 1 1 2.452 21.401 19.413 0.00 0.00 0
|
||||
ATOM 175 O 1 1 6.836 21.329 23.199 0.00 0.00 0
|
||||
ATOM 176 H 1 1 8.249 20.848 22.320 0.00 0.00 0
|
||||
ATOM 177 H 1 1 5.668 21.841 21.886 0.00 0.00 0
|
||||
ATOM 178 O 1 1 4.604 15.649 30.043 0.00 0.00 0
|
||||
ATOM 179 H 1 1 6.453 15.217 30.207 0.00 0.00 0
|
||||
ATOM 180 H 1 1 3.822 14.762 31.562 0.00 0.00 0
|
||||
ATOM 181 O 1 1 7.125 19.976 9.421 0.00 0.00 0
|
||||
ATOM 182 H 1 1 5.918 20.453 10.730 0.00 0.00 0
|
||||
ATOM 183 H 1 1 8.099 21.496 9.491 0.00 0.00 0
|
||||
ATOM 184 O 1 1 9.063 25.912 13.186 0.00 0.00 0
|
||||
ATOM 185 H 1 1 10.350 26.572 12.367 0.00 0.00 0
|
||||
ATOM 186 H 1 1 9.680 24.367 13.697 0.00 0.00 0
|
||||
ATOM 187 O 1 1 8.022 22.343 17.042 0.00 0.00 0
|
||||
ATOM 188 H 1 1 9.144 23.367 18.074 0.00 0.00 0
|
||||
ATOM 189 H 1 1 6.562 23.462 16.852 0.00 0.00 0
|
||||
ATOM 190 O 1 1 10.762 26.285 19.963 0.00 0.00 0
|
||||
ATOM 191 H 1 1 11.036 27.966 20.538 0.00 0.00 0
|
||||
ATOM 192 H 1 1 11.078 25.401 21.456 0.00 0.00 0
|
||||
ATOM 193 O 1 1 9.158 22.902 28.391 0.00 0.00 0
|
||||
ATOM 194 H 1 1 8.219 23.528 27.085 0.00 0.00 0
|
||||
ATOM 195 H 1 1 8.089 21.760 29.509 0.00 0.00 0
|
||||
ATOM 196 O 1 1 6.219 20.158 31.921 0.00 0.00 0
|
||||
ATOM 197 H 1 1 5.635 18.511 31.161 0.00 0.00 0
|
||||
ATOM 198 H 1 1 7.530 19.624 33.071 0.00 0.00 0
|
||||
ATOM 199 O 1 1 11.191 31.509 2.617 0.00 0.00 0
|
||||
ATOM 200 H 1 1 10.460 32.214 4.108 0.00 0.00 0
|
||||
ATOM 201 H 1 1 13.176 31.751 2.577 0.00 0.00 0
|
||||
ATOM 202 O 1 1 4.748 0.055 8.605 0.00 0.00 0
|
||||
ATOM 203 H 1 1 5.380 0.517 10.183 0.00 0.00 0
|
||||
ATOM 204 H 1 1 6.050 -0.306 7.480 0.00 0.00 0
|
||||
ATOM 205 O 1 1 8.695 30.809 15.731 0.00 0.00 0
|
||||
ATOM 206 H 1 1 9.189 32.103 14.495 0.00 0.00 0
|
||||
ATOM 207 H 1 1 8.447 29.069 14.868 0.00 0.00 0
|
||||
ATOM 208 O 1 1 10.128 31.402 20.766 0.00 0.00 0
|
||||
ATOM 209 H 1 1 9.456 30.905 19.155 0.00 0.00 0
|
||||
ATOM 210 H 1 1 9.020 32.731 21.415 0.00 0.00 0
|
||||
ATOM 211 O 1 1 12.238 30.162 25.837 0.00 0.00 0
|
||||
ATOM 212 H 1 1 11.418 30.908 27.110 0.00 0.00 0
|
||||
ATOM 213 H 1 1 12.396 31.331 24.678 0.00 0.00 0
|
||||
ATOM 214 O 1 1 10.395 32.537 30.624 0.00 0.00 0
|
||||
ATOM 215 H 1 1 11.042 34.339 30.751 0.00 0.00 0
|
||||
ATOM 216 H 1 1 11.378 31.486 31.538 0.00 0.00 0
|
||||
ATOM 217 O 1 1 10.438 3.626 5.087 0.00 0.00 0
|
||||
ATOM 218 H 1 1 12.435 4.082 5.136 0.00 0.00 0
|
||||
ATOM 219 H 1 1 9.822 4.284 6.681 0.00 0.00 0
|
||||
ATOM 220 O 1 1 14.762 3.401 13.776 0.00 0.00 0
|
||||
ATOM 221 H 1 1 16.518 3.824 13.376 0.00 0.00 0
|
||||
ATOM 222 H 1 1 13.752 4.757 12.964 0.00 0.00 0
|
||||
ATOM 223 O 1 1 12.382 1.012 17.643 0.00 0.00 0
|
||||
ATOM 224 H 1 1 13.346 1.997 16.444 0.00 0.00 0
|
||||
ATOM 225 H 1 1 11.931 2.133 18.998 0.00 0.00 0
|
||||
ATOM 226 O 1 1 15.278 1.293 24.559 0.00 0.00 0
|
||||
ATOM 227 H 1 1 16.071 0.946 26.365 0.00 0.00 0
|
||||
ATOM 228 H 1 1 15.794 0.199 23.499 0.00 0.00 0
|
||||
ATOM 229 O 1 1 22.226 31.627 24.712 0.00 0.00 0
|
||||
ATOM 230 H 1 1 23.338 32.595 23.876 0.00 0.00 0
|
||||
ATOM 231 H 1 1 22.161 30.053 24.132 0.00 0.00 0
|
||||
ATOM 232 O 1 1 15.640 1.847 32.717 0.00 0.00 0
|
||||
ATOM 233 H 1 1 17.488 2.473 31.874 0.00 0.00 0
|
||||
ATOM 234 H 1 1 16.403 0.869 34.267 0.00 0.00 0
|
||||
ATOM 235 O 1 1 14.858 10.199 2.754 0.00 0.00 0
|
||||
ATOM 236 H 1 1 13.360 10.712 2.282 0.00 0.00 0
|
||||
ATOM 237 H 1 1 14.560 9.316 4.559 0.00 0.00 0
|
||||
ATOM 238 O 1 1 15.717 8.469 10.739 0.00 0.00 0
|
||||
ATOM 239 H 1 1 17.323 9.581 10.875 0.00 0.00 0
|
||||
ATOM 240 H 1 1 14.574 9.631 10.221 0.00 0.00 0
|
||||
ATOM 241 O 1 1 15.248 10.398 16.525 0.00 0.00 0
|
||||
ATOM 242 H 1 1 16.324 9.181 16.149 0.00 0.00 0
|
||||
ATOM 243 H 1 1 14.172 10.488 15.098 0.00 0.00 0
|
||||
ATOM 244 O 1 1 13.226 8.438 20.801 0.00 0.00 0
|
||||
ATOM 245 H 1 1 14.043 8.996 19.295 0.00 0.00 0
|
||||
ATOM 246 H 1 1 14.661 7.802 22.093 0.00 0.00 0
|
||||
ATOM 247 O 1 1 10.173 10.961 25.875 0.00 0.00 0
|
||||
ATOM 248 H 1 1 11.477 10.223 26.940 0.00 0.00 0
|
||||
ATOM 249 H 1 1 11.269 10.738 24.343 0.00 0.00 0
|
||||
ATOM 250 O 1 1 12.792 7.737 29.173 0.00 0.00 0
|
||||
ATOM 251 H 1 1 12.199 6.038 29.475 0.00 0.00 0
|
||||
ATOM 252 H 1 1 14.427 7.450 29.617 0.00 0.00 0
|
||||
ATOM 253 O 1 1 15.180 19.498 3.578 0.00 0.00 0
|
||||
ATOM 254 H 1 1 14.883 17.596 4.080 0.00 0.00 0
|
||||
ATOM 255 H 1 1 16.754 19.579 2.626 0.00 0.00 0
|
||||
ATOM 256 O 1 1 12.517 11.093 7.701 0.00 0.00 0
|
||||
ATOM 257 H 1 1 12.224 12.778 7.555 0.00 0.00 0
|
||||
ATOM 258 H 1 1 11.150 10.393 7.057 0.00 0.00 0
|
||||
ATOM 259 O 1 1 16.266 16.271 10.758 0.00 0.00 0
|
||||
ATOM 260 H 1 1 16.507 15.795 12.768 0.00 0.00 0
|
||||
ATOM 261 H 1 1 17.725 16.977 10.292 0.00 0.00 0
|
||||
ATOM 262 O 1 1 14.069 18.399 18.897 0.00 0.00 0
|
||||
ATOM 263 H 1 1 15.513 17.523 18.155 0.00 0.00 0
|
||||
ATOM 264 H 1 1 14.958 18.709 20.673 0.00 0.00 0
|
||||
ATOM 265 O 1 1 14.099 15.480 25.510 0.00 0.00 0
|
||||
ATOM 266 H 1 1 13.698 16.872 26.938 0.00 0.00 0
|
||||
ATOM 267 H 1 1 12.567 15.379 24.444 0.00 0.00 0
|
||||
ATOM 268 O 1 1 13.309 17.574 30.292 0.00 0.00 0
|
||||
ATOM 269 H 1 1 14.937 16.934 30.810 0.00 0.00 0
|
||||
ATOM 270 H 1 1 13.969 19.494 30.012 0.00 0.00 0
|
||||
ATOM 271 O 1 1 18.371 23.257 0.925 0.00 0.00 0
|
||||
ATOM 272 H 1 1 19.479 23.480 2.321 0.00 0.00 0
|
||||
ATOM 273 H 1 1 19.087 24.325 -0.369 0.00 0.00 0
|
||||
ATOM 274 O 1 1 12.100 21.730 11.355 0.00 0.00 0
|
||||
ATOM 275 H 1 1 13.141 22.287 12.743 0.00 0.00 0
|
||||
ATOM 276 H 1 1 13.467 22.236 10.244 0.00 0.00 0
|
||||
ATOM 277 O 1 1 12.163 23.290 23.597 0.00 0.00 0
|
||||
ATOM 278 H 1 1 11.324 22.736 24.949 0.00 0.00 0
|
||||
ATOM 279 H 1 1 13.882 22.872 23.840 0.00 0.00 0
|
||||
ATOM 280 O 1 1 20.173 26.761 22.628 0.00 0.00 0
|
||||
ATOM 281 H 1 1 20.206 26.532 20.792 0.00 0.00 0
|
||||
ATOM 282 H 1 1 21.556 25.742 23.389 0.00 0.00 0
|
||||
ATOM 283 O 1 1 16.701 21.165 22.605 0.00 0.00 0
|
||||
ATOM 284 H 1 1 18.028 20.686 23.848 0.00 0.00 0
|
||||
ATOM 285 H 1 1 17.104 22.866 21.949 0.00 0.00 0
|
||||
ATOM 286 O 1 1 11.391 26.461 33.705 0.00 0.00 0
|
||||
ATOM 287 H 1 1 9.841 27.192 34.048 0.00 0.00 0
|
||||
ATOM 288 H 1 1 11.776 25.540 35.243 0.00 0.00 0
|
||||
ATOM 289 O 1 1 9.898 25.989 4.553 0.00 0.00 0
|
||||
ATOM 290 H 1 1 8.902 26.131 6.039 0.00 0.00 0
|
||||
ATOM 291 H 1 1 10.287 27.806 4.376 0.00 0.00 0
|
||||
ATOM 292 O 1 1 14.308 26.960 10.877 0.00 0.00 0
|
||||
ATOM 293 H 1 1 15.302 27.405 12.173 0.00 0.00 0
|
||||
ATOM 294 H 1 1 15.463 26.151 9.633 0.00 0.00 0
|
||||
ATOM 295 O 1 1 13.433 22.960 16.904 0.00 0.00 0
|
||||
ATOM 296 H 1 1 13.409 24.131 18.132 0.00 0.00 0
|
||||
ATOM 297 H 1 1 13.624 21.191 17.520 0.00 0.00 0
|
||||
ATOM 298 O 1 1 16.409 26.768 26.875 0.00 0.00 0
|
||||
ATOM 299 H 1 1 17.590 26.987 25.431 0.00 0.00 0
|
||||
ATOM 300 H 1 1 14.751 27.703 26.230 0.00 0.00 0
|
||||
ATOM 301 O 1 1 14.405 22.733 29.892 0.00 0.00 0
|
||||
ATOM 302 H 1 1 15.423 23.079 28.494 0.00 0.00 0
|
||||
ATOM 303 H 1 1 12.826 23.259 29.416 0.00 0.00 0
|
||||
ATOM 304 O 1 1 6.905 29.408 0.749 0.00 0.00 0
|
||||
ATOM 305 H 1 1 8.428 30.483 1.567 0.00 0.00 0
|
||||
ATOM 306 H 1 1 6.353 30.814 -0.444 0.00 0.00 0
|
||||
ATOM 307 O 1 1 9.189 34.159 6.509 0.00 0.00 0
|
||||
ATOM 308 H 1 1 10.198 34.193 8.002 0.00 0.00 0
|
||||
ATOM 309 H 1 1 9.890 35.692 5.785 0.00 0.00 0
|
||||
ATOM 310 O 1 1 14.256 32.316 9.369 0.00 0.00 0
|
||||
ATOM 311 H 1 1 15.733 32.867 9.486 0.00 0.00 0
|
||||
ATOM 312 H 1 1 14.754 30.670 10.090 0.00 0.00 0
|
||||
ATOM 313 O 1 1 14.714 30.841 16.516 0.00 0.00 0
|
||||
ATOM 314 H 1 1 13.748 29.551 17.279 0.00 0.00 0
|
||||
ATOM 315 H 1 1 13.218 31.933 16.614 0.00 0.00 0
|
||||
ATOM 316 O 1 1 18.409 33.641 20.611 0.00 0.00 0
|
||||
ATOM 317 H 1 1 19.601 32.274 21.115 0.00 0.00 0
|
||||
ATOM 318 H 1 1 17.360 32.655 19.518 0.00 0.00 0
|
||||
ATOM 319 O 1 1 16.062 28.638 32.207 0.00 0.00 0
|
||||
ATOM 320 H 1 1 14.648 27.958 33.253 0.00 0.00 0
|
||||
ATOM 321 H 1 1 15.752 28.014 30.522 0.00 0.00 0
|
||||
ATOM 322 O 1 1 16.200 30.895 1.473 0.00 0.00 0
|
||||
ATOM 323 H 1 1 16.626 29.968 -0.130 0.00 0.00 0
|
||||
ATOM 324 H 1 1 17.167 29.833 2.927 0.00 0.00 0
|
||||
ATOM 325 O 1 1 20.278 3.529 6.048 0.00 0.00 0
|
||||
ATOM 326 H 1 1 20.977 3.611 4.575 0.00 0.00 0
|
||||
ATOM 327 H 1 1 21.312 4.513 7.251 0.00 0.00 0
|
||||
ATOM 328 O 1 1 23.079 5.778 10.408 0.00 0.00 0
|
||||
ATOM 329 H 1 1 24.650 6.259 10.838 0.00 0.00 0
|
||||
ATOM 330 H 1 1 22.342 7.609 10.178 0.00 0.00 0
|
||||
ATOM 331 O 1 1 19.581 2.031 12.110 0.00 0.00 0
|
||||
ATOM 332 H 1 1 19.039 1.082 10.440 0.00 0.00 0
|
||||
ATOM 333 H 1 1 21.141 2.991 11.851 0.00 0.00 0
|
||||
ATOM 334 O 1 1 22.005 3.223 23.178 0.00 0.00 0
|
||||
ATOM 335 H 1 1 21.429 4.090 24.554 0.00 0.00 0
|
||||
ATOM 336 H 1 1 20.654 1.791 22.711 0.00 0.00 0
|
||||
ATOM 337 O 1 1 16.630 6.422 23.792 0.00 0.00 0
|
||||
ATOM 338 H 1 1 16.219 4.804 24.406 0.00 0.00 0
|
||||
ATOM 339 H 1 1 17.066 7.128 25.282 0.00 0.00 0
|
||||
ATOM 340 O 1 1 21.676 5.564 28.158 0.00 0.00 0
|
||||
ATOM 341 H 1 1 20.658 6.717 29.185 0.00 0.00 0
|
||||
ATOM 342 H 1 1 23.413 5.828 28.996 0.00 0.00 0
|
||||
ATOM 343 O 1 1 15.257 5.265 5.626 0.00 0.00 0
|
||||
ATOM 344 H 1 1 16.914 4.519 5.490 0.00 0.00 0
|
||||
ATOM 345 H 1 1 15.144 6.150 6.972 0.00 0.00 0
|
||||
ATOM 346 O 1 1 20.137 11.082 10.437 0.00 0.00 0
|
||||
ATOM 347 H 1 1 20.021 10.947 8.733 0.00 0.00 0
|
||||
ATOM 348 H 1 1 21.025 12.555 10.853 0.00 0.00 0
|
||||
ATOM 349 O 1 1 23.089 14.627 12.437 0.00 0.00 0
|
||||
ATOM 350 H 1 1 24.716 15.254 12.736 0.00 0.00 0
|
||||
ATOM 351 H 1 1 23.284 13.228 13.653 0.00 0.00 0
|
||||
ATOM 352 O 1 1 24.083 12.649 22.566 0.00 0.00 0
|
||||
ATOM 353 H 1 1 22.397 12.663 23.042 0.00 0.00 0
|
||||
ATOM 354 H 1 1 24.901 13.851 23.565 0.00 0.00 0
|
||||
ATOM 355 O 1 1 17.865 7.909 30.036 0.00 0.00 0
|
||||
ATOM 356 H 1 1 17.509 8.045 31.982 0.00 0.00 0
|
||||
ATOM 357 H 1 1 18.078 9.582 29.318 0.00 0.00 0
|
||||
ATOM 358 O 1 1 18.824 8.486 0.104 0.00 0.00 0
|
||||
ATOM 359 H 1 1 19.997 10.191 -0.057 0.00 0.00 0
|
||||
ATOM 360 H 1 1 17.077 8.998 0.779 0.00 0.00 0
|
||||
ATOM 361 O 1 1 20.122 9.143 5.343 0.00 0.00 0
|
||||
ATOM 362 H 1 1 19.373 8.819 3.821 0.00 0.00 0
|
||||
ATOM 363 H 1 1 21.998 8.776 5.128 0.00 0.00 0
|
||||
ATOM 364 O 1 1 16.413 14.459 5.855 0.00 0.00 0
|
||||
ATOM 365 H 1 1 15.536 13.007 5.239 0.00 0.00 0
|
||||
ATOM 366 H 1 1 16.006 14.725 7.737 0.00 0.00 0
|
||||
ATOM 367 O 1 1 17.561 15.066 15.654 0.00 0.00 0
|
||||
ATOM 368 H 1 1 17.575 13.398 16.055 0.00 0.00 0
|
||||
ATOM 369 H 1 1 18.978 15.828 16.400 0.00 0.00 0
|
||||
ATOM 370 O 1 1 26.374 17.047 24.817 0.00 0.00 0
|
||||
ATOM 371 H 1 1 27.983 17.098 25.632 0.00 0.00 0
|
||||
ATOM 372 H 1 1 25.629 18.751 24.919 0.00 0.00 0
|
||||
ATOM 373 O 1 1 19.784 12.960 28.706 0.00 0.00 0
|
||||
ATOM 374 H 1 1 21.662 13.055 28.871 0.00 0.00 0
|
||||
ATOM 375 H 1 1 19.545 14.070 27.143 0.00 0.00 0
|
||||
ATOM 376 O 1 1 17.891 16.733 32.499 0.00 0.00 0
|
||||
ATOM 377 H 1 1 18.327 15.240 31.277 0.00 0.00 0
|
||||
ATOM 378 H 1 1 18.633 18.335 31.693 0.00 0.00 0
|
||||
ATOM 379 O 1 1 23.733 23.024 1.663 0.00 0.00 0
|
||||
ATOM 380 H 1 1 24.800 24.052 2.776 0.00 0.00 0
|
||||
ATOM 381 H 1 1 24.693 22.618 0.198 0.00 0.00 0
|
||||
ATOM 382 O 1 1 20.789 18.440 9.443 0.00 0.00 0
|
||||
ATOM 383 H 1 1 20.766 17.257 7.881 0.00 0.00 0
|
||||
ATOM 384 H 1 1 21.896 17.345 10.385 0.00 0.00 0
|
||||
ATOM 385 O 1 1 21.574 17.493 17.838 0.00 0.00 0
|
||||
ATOM 386 H 1 1 20.597 18.955 17.218 0.00 0.00 0
|
||||
ATOM 387 H 1 1 22.538 16.874 16.251 0.00 0.00 0
|
||||
ATOM 388 O 1 1 19.168 14.748 24.131 0.00 0.00 0
|
||||
ATOM 389 H 1 1 19.711 16.390 23.712 0.00 0.00 0
|
||||
ATOM 390 H 1 1 17.429 14.695 24.403 0.00 0.00 0
|
||||
ATOM 391 O 1 1 22.149 20.198 24.977 0.00 0.00 0
|
||||
ATOM 392 H 1 1 21.639 20.924 26.486 0.00 0.00 0
|
||||
ATOM 393 H 1 1 22.656 21.657 24.411 0.00 0.00 0
|
||||
ATOM 394 O 1 1 20.565 20.792 29.600 0.00 0.00 0
|
||||
ATOM 395 H 1 1 22.264 20.409 30.214 0.00 0.00 0
|
||||
ATOM 396 H 1 1 20.548 22.408 30.597 0.00 0.00 0
|
||||
ATOM 397 O 1 1 20.802 26.547 9.615 0.00 0.00 0
|
||||
ATOM 398 H 1 1 20.099 27.984 8.338 0.00 0.00 0
|
||||
ATOM 399 H 1 1 21.277 27.539 11.325 0.00 0.00 0
|
||||
ATOM 400 O 1 1 16.283 23.589 7.779 0.00 0.00 0
|
||||
ATOM 401 H 1 1 16.093 21.973 6.712 0.00 0.00 0
|
||||
ATOM 402 H 1 1 17.901 22.971 8.154 0.00 0.00 0
|
||||
ATOM 403 O 1 1 18.469 29.798 13.568 0.00 0.00 0
|
||||
ATOM 404 H 1 1 19.712 31.216 13.506 0.00 0.00 0
|
||||
ATOM 405 H 1 1 16.872 30.343 14.396 0.00 0.00 0
|
||||
ATOM 406 O 1 1 18.790 21.712 16.060 0.00 0.00 0
|
||||
ATOM 407 H 1 1 19.878 23.090 16.485 0.00 0.00 0
|
||||
ATOM 408 H 1 1 17.201 22.326 15.819 0.00 0.00 0
|
||||
ATOM 409 O 1 1 21.747 26.084 16.349 0.00 0.00 0
|
||||
ATOM 410 H 1 1 20.783 27.021 15.300 0.00 0.00 0
|
||||
ATOM 411 H 1 1 22.705 27.328 17.206 0.00 0.00 0
|
||||
ATOM 412 O 1 1 20.769 26.211 32.050 0.00 0.00 0
|
||||
ATOM 413 H 1 1 21.488 27.404 33.328 0.00 0.00 0
|
||||
ATOM 414 H 1 1 18.989 26.710 32.145 0.00 0.00 0
|
||||
ATOM 415 O 1 1 19.820 29.181 5.559 0.00 0.00 0
|
||||
ATOM 416 H 1 1 20.991 29.509 4.109 0.00 0.00 0
|
||||
ATOM 417 H 1 1 19.431 31.018 6.221 0.00 0.00 0
|
||||
ATOM 418 O 1 1 19.240 33.867 7.993 0.00 0.00 0
|
||||
ATOM 419 H 1 1 19.107 35.039 6.604 0.00 0.00 0
|
||||
ATOM 420 H 1 1 20.697 33.671 9.063 0.00 0.00 0
|
||||
ATOM 421 O 1 1 22.511 34.976 15.793 0.00 0.00 0
|
||||
ATOM 422 H 1 1 23.716 36.163 16.603 0.00 0.00 0
|
||||
ATOM 423 H 1 1 21.699 36.150 14.467 0.00 0.00 0
|
||||
ATOM 424 O 1 1 22.622 30.284 19.069 0.00 0.00 0
|
||||
ATOM 425 H 1 1 22.049 31.351 17.725 0.00 0.00 0
|
||||
ATOM 426 H 1 1 24.411 30.773 19.576 0.00 0.00 0
|
||||
ATOM 427 O 1 1 18.639 33.611 28.369 0.00 0.00 0
|
||||
ATOM 428 H 1 1 18.226 32.159 29.103 0.00 0.00 0
|
||||
ATOM 429 H 1 1 19.906 33.008 27.158 0.00 0.00 0
|
||||
ATOM 430 O 1 1 22.520 1.325 31.926 0.00 0.00 0
|
||||
ATOM 431 H 1 1 22.803 2.668 30.796 0.00 0.00 0
|
||||
ATOM 432 H 1 1 21.045 0.425 31.122 0.00 0.00 0
|
||||
ATOM 433 O 1 1 21.754 3.789 1.159 0.00 0.00 0
|
||||
ATOM 434 H 1 1 22.085 2.785 -0.180 0.00 0.00 0
|
||||
ATOM 435 H 1 1 20.850 5.175 0.610 0.00 0.00 0
|
||||
ATOM 436 O 1 1 28.457 5.539 12.133 0.00 0.00 0
|
||||
ATOM 437 H 1 1 29.489 4.390 11.182 0.00 0.00 0
|
||||
ATOM 438 H 1 1 29.161 7.131 12.587 0.00 0.00 0
|
||||
ATOM 439 O 1 1 22.495 5.966 17.324 0.00 0.00 0
|
||||
ATOM 440 H 1 1 24.377 5.379 17.393 0.00 0.00 0
|
||||
ATOM 441 H 1 1 21.906 5.491 18.857 0.00 0.00 0
|
||||
ATOM 442 O 1 1 28.128 3.304 22.287 0.00 0.00 0
|
||||
ATOM 443 H 1 1 28.123 2.999 20.491 0.00 0.00 0
|
||||
ATOM 444 H 1 1 26.533 3.355 22.876 0.00 0.00 0
|
||||
ATOM 445 O 1 1 28.378 10.455 27.266 0.00 0.00 0
|
||||
ATOM 446 H 1 1 30.019 10.292 28.051 0.00 0.00 0
|
||||
ATOM 447 H 1 1 28.635 10.039 25.463 0.00 0.00 0
|
||||
ATOM 448 O 1 1 27.031 8.353 34.806 0.00 0.00 0
|
||||
ATOM 449 H 1 1 26.116 9.984 34.571 0.00 0.00 0
|
||||
ATOM 450 H 1 1 28.685 8.951 34.739 0.00 0.00 0
|
||||
ATOM 451 O 1 1 24.951 8.160 4.454 0.00 0.00 0
|
||||
ATOM 452 H 1 1 25.930 9.616 5.160 0.00 0.00 0
|
||||
ATOM 453 H 1 1 25.947 7.994 2.724 0.00 0.00 0
|
||||
ATOM 454 O 1 1 26.937 12.436 6.869 0.00 0.00 0
|
||||
ATOM 455 H 1 1 25.492 13.284 6.708 0.00 0.00 0
|
||||
ATOM 456 H 1 1 27.689 13.332 8.266 0.00 0.00 0
|
||||
ATOM 457 O 1 1 23.365 11.214 16.933 0.00 0.00 0
|
||||
ATOM 458 H 1 1 22.247 9.744 16.789 0.00 0.00 0
|
||||
ATOM 459 H 1 1 23.264 12.035 18.539 0.00 0.00 0
|
||||
ATOM 460 O 1 1 28.321 8.759 22.158 0.00 0.00 0
|
||||
ATOM 461 H 1 1 27.662 6.895 22.482 0.00 0.00 0
|
||||
ATOM 462 H 1 1 26.971 9.710 21.902 0.00 0.00 0
|
||||
ATOM 463 O 1 1 27.071 6.109 29.555 0.00 0.00 0
|
||||
ATOM 464 H 1 1 27.591 7.663 28.857 0.00 0.00 0
|
||||
ATOM 465 H 1 1 27.304 6.320 31.261 0.00 0.00 0
|
||||
ATOM 466 O 1 1 22.474 11.704 34.640 0.00 0.00 0
|
||||
ATOM 467 H 1 1 22.752 13.304 35.584 0.00 0.00 0
|
||||
ATOM 468 H 1 1 22.840 12.090 33.030 0.00 0.00 0
|
||||
ATOM 469 O 1 1 21.656 14.971 5.615 0.00 0.00 0
|
||||
ATOM 470 H 1 1 21.690 15.860 3.977 0.00 0.00 0
|
||||
ATOM 471 H 1 1 19.964 14.225 5.774 0.00 0.00 0
|
||||
ATOM 472 O 1 1 28.539 21.492 9.820 0.00 0.00 0
|
||||
ATOM 473 H 1 1 27.288 22.181 8.688 0.00 0.00 0
|
||||
ATOM 474 H 1 1 28.065 22.420 11.602 0.00 0.00 0
|
||||
ATOM 475 O 1 1 28.364 16.020 11.109 0.00 0.00 0
|
||||
ATOM 476 H 1 1 30.033 16.649 12.089 0.00 0.00 0
|
||||
ATOM 477 H 1 1 28.456 17.440 10.082 0.00 0.00 0
|
||||
ATOM 478 O 1 1 0.054 13.686 18.103 0.00 0.00 0
|
||||
ATOM 479 H 1 1 -1.714 12.928 18.841 0.00 0.00 0
|
||||
ATOM 480 H 1 1 1.008 12.429 17.383 0.00 0.00 0
|
||||
ATOM 481 O 1 1 24.636 12.894 29.957 0.00 0.00 0
|
||||
ATOM 482 H 1 1 25.906 13.914 31.183 0.00 0.00 0
|
||||
ATOM 483 H 1 1 25.641 11.609 29.162 0.00 0.00 0
|
||||
ATOM 484 O 1 1 21.548 17.250 0.749 0.00 0.00 0
|
||||
ATOM 485 H 1 1 21.843 19.026 0.905 0.00 0.00 0
|
||||
ATOM 486 H 1 1 20.385 16.716 -0.697 0.00 0.00 0
|
||||
ATOM 487 O 1 1 26.095 27.274 4.520 0.00 0.00 0
|
||||
ATOM 488 H 1 1 27.889 26.458 4.505 0.00 0.00 0
|
||||
ATOM 489 H 1 1 25.648 26.970 6.165 0.00 0.00 0
|
||||
ATOM 490 O 1 1 23.610 22.515 8.008 0.00 0.00 0
|
||||
ATOM 491 H 1 1 22.653 21.187 8.739 0.00 0.00 0
|
||||
ATOM 492 H 1 1 22.286 24.095 8.444 0.00 0.00 0
|
||||
ATOM 493 O 1 1 27.355 18.929 18.180 0.00 0.00 0
|
||||
ATOM 494 H 1 1 27.200 20.349 17.155 0.00 0.00 0
|
||||
ATOM 495 H 1 1 25.579 18.322 18.770 0.00 0.00 0
|
||||
ATOM 496 O 1 1 26.765 23.633 14.444 0.00 0.00 0
|
||||
ATOM 497 H 1 1 27.441 25.298 13.651 0.00 0.00 0
|
||||
ATOM 498 H 1 1 25.086 24.256 14.749 0.00 0.00 0
|
||||
ATOM 499 O 1 1 31.478 20.769 20.986 0.00 0.00 0
|
||||
ATOM 500 H 1 1 30.440 22.509 21.135 0.00 0.00 0
|
||||
ATOM 501 H 1 1 30.567 19.656 20.043 0.00 0.00 0
|
||||
ATOM 502 O 1 1 24.812 20.412 32.668 0.00 0.00 0
|
||||
ATOM 503 H 1 1 26.242 21.478 31.874 0.00 0.00 0
|
||||
ATOM 504 H 1 1 25.787 19.023 33.158 0.00 0.00 0
|
||||
ATOM 505 O 1 1 22.105 29.076 0.928 0.00 0.00 0
|
||||
ATOM 506 H 1 1 23.296 27.923 1.739 0.00 0.00 0
|
||||
ATOM 507 H 1 1 22.623 30.994 0.882 0.00 0.00 0
|
||||
ATOM 508 O 1 1 29.572 31.256 8.626 0.00 0.00 0
|
||||
ATOM 509 H 1 1 30.795 30.203 7.736 0.00 0.00 0
|
||||
ATOM 510 H 1 1 28.277 31.519 7.260 0.00 0.00 0
|
||||
ATOM 511 O 1 1 31.817 34.843 18.283 0.00 0.00 0
|
||||
ATOM 512 H 1 1 32.438 34.389 16.474 0.00 0.00 0
|
||||
ATOM 513 H 1 1 32.743 36.422 18.341 0.00 0.00 0
|
||||
ATOM 514 O 1 1 27.915 25.601 19.033 0.00 0.00 0
|
||||
ATOM 515 H 1 1 29.358 26.561 19.190 0.00 0.00 0
|
||||
ATOM 516 H 1 1 28.148 24.429 17.530 0.00 0.00 0
|
||||
ATOM 517 O 1 1 24.548 24.654 24.025 0.00 0.00 0
|
||||
ATOM 518 H 1 1 25.528 25.635 22.824 0.00 0.00 0
|
||||
ATOM 519 H 1 1 25.300 25.200 25.645 0.00 0.00 0
|
||||
ATOM 520 O 1 1 28.540 22.922 30.370 0.00 0.00 0
|
||||
ATOM 521 H 1 1 27.414 24.096 29.781 0.00 0.00 0
|
||||
ATOM 522 H 1 1 29.674 23.914 31.873 0.00 0.00 0
|
||||
ATOM 523 O 1 1 24.969 33.623 1.014 0.00 0.00 0
|
||||
ATOM 524 H 1 1 26.521 33.058 1.518 0.00 0.00 0
|
||||
ATOM 525 H 1 1 24.990 34.322 -0.683 0.00 0.00 0
|
||||
ATOM 526 O 1 1 23.075 32.171 11.324 0.00 0.00 0
|
||||
ATOM 527 H 1 1 23.316 32.775 13.097 0.00 0.00 0
|
||||
ATOM 528 H 1 1 24.460 33.203 10.662 0.00 0.00 0
|
||||
ATOM 529 O 1 1 27.497 2.736 17.224 0.00 0.00 0
|
||||
ATOM 530 H 1 1 28.397 3.415 15.715 0.00 0.00 0
|
||||
ATOM 531 H 1 1 28.234 1.233 17.412 0.00 0.00 0
|
||||
ATOM 532 O 1 1 26.369 33.060 22.077 0.00 0.00 0
|
||||
ATOM 533 H 1 1 26.170 34.746 22.264 0.00 0.00 0
|
||||
ATOM 534 H 1 1 27.592 32.404 23.321 0.00 0.00 0
|
||||
ATOM 535 O 1 1 30.221 30.950 25.843 0.00 0.00 0
|
||||
ATOM 536 H 1 1 30.305 29.038 26.208 0.00 0.00 0
|
||||
ATOM 537 H 1 1 30.363 31.979 27.414 0.00 0.00 0
|
||||
ATOM 538 O 1 1 24.973 26.732 28.607 0.00 0.00 0
|
||||
ATOM 539 H 1 1 25.385 28.369 29.248 0.00 0.00 0
|
||||
ATOM 540 H 1 1 23.330 26.597 29.234 0.00 0.00 0
|
||||
ATOM 541 O 1 1 32.165 4.857 2.258 0.00 0.00 0
|
||||
ATOM 542 H 1 1 32.417 6.195 1.157 0.00 0.00 0
|
||||
ATOM 543 H 1 1 32.615 3.727 1.112 0.00 0.00 0
|
||||
ATOM 544 O 1 1 28.067 3.533 5.217 0.00 0.00 0
|
||||
ATOM 545 H 1 1 26.960 4.447 4.158 0.00 0.00 0
|
||||
ATOM 546 H 1 1 29.875 3.863 4.448 0.00 0.00 0
|
||||
ATOM 547 O 1 1 33.279 2.782 13.028 0.00 0.00 0
|
||||
ATOM 548 H 1 1 33.708 3.955 11.817 0.00 0.00 0
|
||||
ATOM 549 H 1 1 33.656 3.545 14.631 0.00 0.00 0
|
||||
ATOM 550 O 1 1 34.278 4.944 17.492 0.00 0.00 0
|
||||
ATOM 551 H 1 1 33.438 6.563 17.876 0.00 0.00 0
|
||||
ATOM 552 H 1 1 34.906 4.452 18.995 0.00 0.00 0
|
||||
ATOM 553 O 1 1 32.363 1.908 26.092 0.00 0.00 0
|
||||
ATOM 554 H 1 1 31.941 1.683 24.268 0.00 0.00 0
|
||||
ATOM 555 H 1 1 33.850 1.390 26.904 0.00 0.00 0
|
||||
ATOM 556 O 1 1 27.982 0.418 28.241 0.00 0.00 0
|
||||
ATOM 557 H 1 1 27.516 2.080 28.309 0.00 0.00 0
|
||||
ATOM 558 H 1 1 29.593 0.176 27.299 0.00 0.00 0
|
||||
ATOM 559 O 1 1 28.845 14.672 2.724 0.00 0.00 0
|
||||
ATOM 560 H 1 1 27.963 13.930 4.139 0.00 0.00 0
|
||||
ATOM 561 H 1 1 30.386 15.714 3.379 0.00 0.00 0
|
||||
ATOM 562 O 1 1 28.083 10.618 14.298 0.00 0.00 0
|
||||
ATOM 563 H 1 1 28.623 12.160 13.293 0.00 0.00 0
|
||||
ATOM 564 H 1 1 26.486 11.015 15.379 0.00 0.00 0
|
||||
ATOM 565 O 1 1 33.867 10.545 13.306 0.00 0.00 0
|
||||
ATOM 566 H 1 1 35.165 9.612 13.810 0.00 0.00 0
|
||||
ATOM 567 H 1 1 33.615 10.270 11.513 0.00 0.00 0
|
||||
ATOM 568 O 1 1 31.790 9.696 18.223 0.00 0.00 0
|
||||
ATOM 569 H 1 1 30.484 9.334 19.421 0.00 0.00 0
|
||||
ATOM 570 H 1 1 30.834 10.096 16.929 0.00 0.00 0
|
||||
ATOM 571 O 1 1 30.141 15.006 21.532 0.00 0.00 0
|
||||
ATOM 572 H 1 1 28.565 15.594 22.099 0.00 0.00 0
|
||||
ATOM 573 H 1 1 30.942 14.253 23.077 0.00 0.00 0
|
||||
ATOM 574 O 1 1 32.798 10.732 30.680 0.00 0.00 0
|
||||
ATOM 575 H 1 1 34.073 9.528 30.799 0.00 0.00 0
|
||||
ATOM 576 H 1 1 32.991 11.512 28.983 0.00 0.00 0
|
||||
ATOM 577 O 1 1 33.652 16.265 5.086 0.00 0.00 0
|
||||
ATOM 578 H 1 1 35.399 16.239 4.730 0.00 0.00 0
|
||||
ATOM 579 H 1 1 33.503 17.939 5.631 0.00 0.00 0
|
||||
ATOM 580 O 1 1 31.947 10.799 7.943 0.00 0.00 0
|
||||
ATOM 581 H 1 1 29.894 10.549 7.619 0.00 0.00 0
|
||||
ATOM 582 H 1 1 32.271 12.414 7.075 0.00 0.00 0
|
||||
ATOM 583 O 1 1 0.329 15.516 11.746 0.00 0.00 0
|
||||
ATOM 584 H 1 1 -0.446 14.249 12.939 0.00 0.00 0
|
||||
ATOM 585 H 1 1 -0.685 17.018 11.935 0.00 0.00 0
|
||||
ATOM 586 O 1 1 4.262 19.165 14.308 0.00 0.00 0
|
||||
ATOM 587 H 1 1 3.579 17.691 14.920 0.00 0.00 0
|
||||
ATOM 588 H 1 1 5.723 19.183 15.204 0.00 0.00 0
|
||||
ATOM 589 O 1 1 32.995 13.546 25.948 0.00 0.00 0
|
||||
ATOM 590 H 1 1 32.167 15.060 26.787 0.00 0.00 0
|
||||
ATOM 591 H 1 1 34.425 13.800 25.007 0.00 0.00 0
|
||||
ATOM 592 O 1 1 1.773 13.524 34.037 0.00 0.00 0
|
||||
ATOM 593 H 1 1 0.227 14.409 33.446 0.00 0.00 0
|
||||
ATOM 594 H 1 1 2.167 14.670 35.511 0.00 0.00 0
|
||||
ATOM 595 O 1 1 33.029 20.529 7.247 0.00 0.00 0
|
||||
ATOM 596 H 1 1 34.388 21.414 8.003 0.00 0.00 0
|
||||
ATOM 597 H 1 1 31.451 20.831 8.182 0.00 0.00 0
|
||||
ATOM 598 O 1 1 2.037 24.250 10.251 0.00 0.00 0
|
||||
ATOM 599 H 1 1 3.743 25.008 9.876 0.00 0.00 0
|
||||
ATOM 600 H 1 1 1.894 25.043 11.903 0.00 0.00 0
|
||||
ATOM 601 O 1 1 32.753 19.259 13.976 0.00 0.00 0
|
||||
ATOM 602 H 1 1 32.792 20.886 13.792 0.00 0.00 0
|
||||
ATOM 603 H 1 1 34.334 18.799 14.976 0.00 0.00 0
|
||||
ATOM 604 O 1 1 0.396 18.673 18.699 0.00 0.00 0
|
||||
ATOM 605 H 1 1 -1.211 18.950 19.127 0.00 0.00 0
|
||||
ATOM 606 H 1 1 0.469 16.977 18.436 0.00 0.00 0
|
||||
ATOM 607 O 1 1 30.855 18.370 27.959 0.00 0.00 0
|
||||
ATOM 608 H 1 1 29.759 19.681 28.690 0.00 0.00 0
|
||||
ATOM 609 H 1 1 32.103 19.477 26.763 0.00 0.00 0
|
||||
ATOM 610 O 1 1 27.723 15.992 33.091 0.00 0.00 0
|
||||
ATOM 611 H 1 1 29.390 16.423 32.192 0.00 0.00 0
|
||||
ATOM 612 H 1 1 27.801 15.859 34.804 0.00 0.00 0
|
||||
ATOM 613 O 1 1 31.068 27.895 3.348 0.00 0.00 0
|
||||
ATOM 614 H 1 1 32.517 27.825 4.610 0.00 0.00 0
|
||||
ATOM 615 H 1 1 31.529 29.459 2.324 0.00 0.00 0
|
||||
ATOM 616 O 1 1 35.039 28.008 6.663 0.00 0.00 0
|
||||
ATOM 617 H 1 1 35.966 26.934 7.683 0.00 0.00 0
|
||||
ATOM 618 H 1 1 36.055 28.336 5.336 0.00 0.00 0
|
||||
ATOM 619 O 1 1 29.356 28.196 13.025 0.00 0.00 0
|
||||
ATOM 620 H 1 1 29.210 29.335 14.589 0.00 0.00 0
|
||||
ATOM 621 H 1 1 28.874 29.629 11.867 0.00 0.00 0
|
||||
ATOM 622 O 1 1 32.386 28.434 18.961 0.00 0.00 0
|
||||
ATOM 623 H 1 1 33.368 28.574 20.411 0.00 0.00 0
|
||||
ATOM 624 H 1 1 33.410 27.406 17.949 0.00 0.00 0
|
||||
ATOM 625 O 1 1 30.898 25.390 25.799 0.00 0.00 0
|
||||
ATOM 626 H 1 1 32.369 25.913 24.580 0.00 0.00 0
|
||||
ATOM 627 H 1 1 31.317 24.075 27.029 0.00 0.00 0
|
||||
ATOM 628 O 1 1 32.259 25.611 33.104 0.00 0.00 0
|
||||
ATOM 629 H 1 1 32.238 25.736 34.806 0.00 0.00 0
|
||||
ATOM 630 H 1 1 33.920 25.042 32.775 0.00 0.00 0
|
||||
ATOM 631 O 1 1 30.290 32.645 1.341 0.00 0.00 0
|
||||
ATOM 632 H 1 1 29.949 32.793 -0.430 0.00 0.00 0
|
||||
ATOM 633 H 1 1 31.762 33.340 1.847 0.00 0.00 0
|
||||
ATOM 634 O 1 1 25.536 34.235 6.469 0.00 0.00 0
|
||||
ATOM 635 H 1 1 25.716 36.059 6.651 0.00 0.00 0
|
||||
ATOM 636 H 1 1 25.283 33.866 4.895 0.00 0.00 0
|
||||
ATOM 637 O 1 1 31.674 33.161 13.106 0.00 0.00 0
|
||||
ATOM 638 H 1 1 31.793 34.863 13.281 0.00 0.00 0
|
||||
ATOM 639 H 1 1 30.425 32.928 11.783 0.00 0.00 0
|
||||
ATOM 640 O 1 1 33.844 32.668 22.296 0.00 0.00 0
|
||||
ATOM 641 H 1 1 32.750 32.234 23.524 0.00 0.00 0
|
||||
ATOM 642 H 1 1 32.917 32.875 20.736 0.00 0.00 0
|
||||
ATOM 643 O 1 1 31.603 30.542 30.805 0.00 0.00 0
|
||||
ATOM 644 H 1 1 33.451 30.804 30.468 0.00 0.00 0
|
||||
ATOM 645 H 1 1 31.575 28.816 31.756 0.00 0.00 0
|
||||
ATOM 646 O 1 1 26.295 31.235 30.599 0.00 0.00 0
|
||||
ATOM 647 H 1 1 27.834 30.515 30.607 0.00 0.00 0
|
||||
ATOM 648 H 1 1 26.362 32.920 29.856 0.00 0.00 0
|
||||
END
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,32 +0,0 @@
|
||||
units electron
|
||||
atom_style full
|
||||
|
||||
#pair_style lj/cut/coul/long 17.01
|
||||
pair_style lj/cut/tip4p/long 1 2 1 1 0.278072379 17.007
|
||||
#bond_style harmonic
|
||||
bond_style class2
|
||||
angle_style harmonic
|
||||
#kspace_style pppm 0.0001
|
||||
kspace_style pppm/tip4p 0.0001
|
||||
|
||||
read_data data.water
|
||||
pair_coeff * * 0 0
|
||||
pair_coeff 1 1 0.000295147 5.96946
|
||||
|
||||
neighbor 2.0 bin
|
||||
|
||||
timestep 0.00025
|
||||
|
||||
#velocity all create 298.0 2345187
|
||||
|
||||
#thermo_style multi
|
||||
#thermo 1
|
||||
|
||||
#fix 1 all nvt temp 298.0 298.0 30.0 tchain 1
|
||||
#fix 1 all nve
|
||||
fix 1 all ipi piglet_8 32342 unix
|
||||
|
||||
#dump 1 all xyz 25 dump.xyz
|
||||
|
||||
run 100000000
|
||||
|
||||
@ -1,49 +0,0 @@
|
||||
<simulation>
|
||||
<initialize nbeads='8'>
|
||||
<file mode='pdb'> water_298K.pdb </file>
|
||||
<velocities mode="thermal" units='kelvin'> 298 </velocities>
|
||||
</initialize>
|
||||
<output prefix='gle_lammps'>
|
||||
<properties stride='1' filename='out'> [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] </properties>
|
||||
<trajectory filename='pos' stride='20'> positions </trajectory>
|
||||
</output>
|
||||
<total_steps>500000</total_steps>
|
||||
<prng><seed>32342</seed></prng>
|
||||
<forces>
|
||||
<socket mode='unix'>
|
||||
<address>piglet_8</address>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='nm_gle'>
|
||||
<A shape='(8,9,9)'>
|
||||
[
|
||||
1.300513766690e-2, 9.078220950722e-6, 8.180522706851e-6, 1.196620464216e-5, 1.108609196233e-4, -8.941338246404e-4, 7.817382329484e-3, -1.206049888192e-2, -5.215913547478e-2, -9.756343549369e-6, 2.131200614277e-7, 2.972243541454e-6, -4.459298032276e-6, 2.177011229810e-7, 4.960251269751e-7, -2.083064995647e-6, -7.004617074013e-6, 2.299410255689e-5, -1.851243089560e-6, -2.972243541454e-6, 1.956991859501e-6, 1.742357040415e-6, -2.082265548357e-6, -1.760771137012e-6, -3.733162998255e-6, -3.711884630223e-5, -3.625483838477e-5, 1.492481502899e-5, 4.459298032276e-6, -1.742357040415e-6, 5.092476869103e-6, 2.033910859306e-6, 5.856365217540e-7, -3.020170664006e-6, 1.868034354962e-5, -5.049113665348e-6, 1.059383195368e-4, -2.177011229810e-7, 2.082265548357e-6, -2.033910859306e-6, 5.467813757620e-5, -6.684243951800e-6, -9.770331146786e-7, -2.159991642805e-4, 4.667176340213e-4, -7.611448585233e-4, -4.960251269751e-7, 1.760771137012e-6, -5.856365217540e-7, 6.684243951800e-6, 6.616597356640e-4, -1.637891086976e-6, -2.056652206438e-4, 2.960975881160e-4, 7.659946833472e-3, 2.083064995647e-6, 3.733162998255e-6, 3.020170664006e-6, 9.770331146786e-7, 1.637891086976e-6, 6.390977118535e-3, -6.246090363901e-5, 5.054994461623e-4, -1.078245092236e-2, 7.004617074013e-6, 3.711884630223e-5, -1.868034354962e-5, 2.159991642805e-4, 2.056652206438e-4, 6.246090363901e-5, 1.730397061203e-1, 1.004651317366e-4, -5.467410217589e-2, -2.299410255689e-5, 3.625483838477e-5, 5.049113665348e-6, -4.667176340213e-4, -2.960975881160e-4, -5.054994461623e-4, -1.004651317366e-4, 1.795223909984e+0,
|
||||
8.433361179684e-6, 5.985771048989e-3, 0.000000000000e+0, 1.106850007061e-2, 0.000000000000e+0, 4.737897597685e-3, 0.000000000000e+0, 2.344265458323e-4, 0.000000000000e+0, -5.985771048989e-3, 9.461326310093e-2, 9.829968606252e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -9.829968606252e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.106850007061e-2, 0.000000000000e+0, 0.000000000000e+0, 1.488504300030e-2, 4.214899343968e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.214899343968e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.737897597685e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.514677295700e-2, 8.541932660186e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -8.541932660186e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, -2.344265458323e-4, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.199180080880e-4, 3.798554823700e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -3.798554823700e-3, 1.889231157037e-14,
|
||||
8.433361179684e-6, 5.985771048989e-3, 0.000000000000e+0, 1.106850007061e-2, 0.000000000000e+0, 4.737897597685e-3, 0.000000000000e+0, 2.344265458323e-4, 0.000000000000e+0, -5.985771048989e-3, 9.461326310093e-2, 9.829968606252e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -9.829968606252e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.106850007061e-2, 0.000000000000e+0, 0.000000000000e+0, 1.488504300030e-2, 4.214899343968e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.214899343968e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.737897597685e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.514677295700e-2, 8.541932660186e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -8.541932660186e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, -2.344265458323e-4, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.199180080880e-4, 3.798554823700e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -3.798554823700e-3, 1.889231157037e-14,
|
||||
8.433361179684e-6, 5.985771048989e-3, 0.000000000000e+0, 1.106850007061e-2, 0.000000000000e+0, 4.737897597685e-3, 0.000000000000e+0, 2.344265458323e-4, 0.000000000000e+0, -5.985771048989e-3, 9.461326310093e-2, 9.829968606252e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -9.829968606252e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.106850007061e-2, 0.000000000000e+0, 0.000000000000e+0, 1.488504300030e-2, 4.214899343968e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.214899343968e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.737897597685e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.514677295700e-2, 8.541932660186e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -8.541932660186e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, -2.344265458323e-4, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.199180080880e-4, 3.798554823700e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -3.798554823700e-3, 1.889231157037e-14,
|
||||
8.433361179684e-6, 5.985771048989e-3, 0.000000000000e+0, 1.106850007061e-2, 0.000000000000e+0, 4.737897597685e-3, 0.000000000000e+0, 2.344265458323e-4, 0.000000000000e+0, -5.985771048989e-3, 9.461326310093e-2, 9.829968606252e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -9.829968606252e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.106850007061e-2, 0.000000000000e+0, 0.000000000000e+0, 1.488504300030e-2, 4.214899343968e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.214899343968e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.737897597685e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.514677295700e-2, 8.541932660186e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -8.541932660186e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, -2.344265458323e-4, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.199180080880e-4, 3.798554823700e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -3.798554823700e-3, 1.889231157037e-14,
|
||||
8.433361179684e-6, 5.985771048989e-3, 0.000000000000e+0, 1.106850007061e-2, 0.000000000000e+0, 4.737897597685e-3, 0.000000000000e+0, 2.344265458323e-4, 0.000000000000e+0, -5.985771048989e-3, 9.461326310093e-2, 9.829968606252e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -9.829968606252e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.106850007061e-2, 0.000000000000e+0, 0.000000000000e+0, 1.488504300030e-2, 4.214899343968e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.214899343968e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.737897597685e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.514677295700e-2, 8.541932660186e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -8.541932660186e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, -2.344265458323e-4, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.199180080880e-4, 3.798554823700e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -3.798554823700e-3, 1.889231157037e-14,
|
||||
8.433361179684e-6, 5.985771048989e-3, 0.000000000000e+0, 1.106850007061e-2, 0.000000000000e+0, 4.737897597685e-3, 0.000000000000e+0, 2.344265458323e-4, 0.000000000000e+0, -5.985771048989e-3, 9.461326310093e-2, 9.829968606252e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -9.829968606252e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.106850007061e-2, 0.000000000000e+0, 0.000000000000e+0, 1.488504300030e-2, 4.214899343968e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.214899343968e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.737897597685e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.514677295700e-2, 8.541932660186e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -8.541932660186e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, -2.344265458323e-4, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.199180080880e-4, 3.798554823700e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -3.798554823700e-3, 1.889231157037e-14,
|
||||
8.433361179684e-6, 5.985771048989e-3, 0.000000000000e+0, 1.106850007061e-2, 0.000000000000e+0, 4.737897597685e-3, 0.000000000000e+0, 2.344265458323e-4, 0.000000000000e+0, -5.985771048989e-3, 9.461326310093e-2, 9.829968606252e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -9.829968606252e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -1.106850007061e-2, 0.000000000000e+0, 0.000000000000e+0, 1.488504300030e-2, 4.214899343968e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.214899343968e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -4.737897597685e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 3.514677295700e-2, 8.541932660186e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -8.541932660186e-3, 1.889231157037e-14, 0.000000000000e+0, 0.000000000000e+0, -2.344265458323e-4, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.199180080880e-4, 3.798554823700e-3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, -3.798554823700e-3, 1.889231157037e-14
|
||||
]
|
||||
</A>
|
||||
<C shape='(8,9,9)' units='kelvin'>
|
||||
[
|
||||
2.384000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.384000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.384000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.384000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.384000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.384000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.384000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.384000000000e+3, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 0.000000000000e+0, 2.384000000000e+3,
|
||||
2.698549372188e+3, -1.368081060516e+3, -3.209415830440e+3, 8.738658365140e+2, 7.268039280880e+2, -2.513005676292e+2, -4.150754888640e+2, -1.260054684948e+3, -6.448165752780e+2, -1.368081060516e+3, 2.965586458180e+4, 5.268769597220e-8, -5.555628715240e+0, 4.972346413560e+2, -5.924916939780e+1, 1.075269335280e+2, -8.318280168320e+1, -1.172679285326e+0, -3.209415830440e+3, 5.268504922560e-8, 2.770155230160e+4, -1.159648313612e+3, -4.345682898960e+3, -1.237408936636e+2, -1.339182640444e+3, 3.034680577260e+0, -4.135056752260e+2, 8.738658365140e+2, -5.555628715240e+0, -1.159648313612e+3, 1.243175060816e+3, 1.278480055046e-8, 5.970691220840e+1, -2.520026819128e+2, -9.347295856760e+2, -4.292224714720e+2, 7.268039280880e+2, 4.972346413560e+2, -4.345682898960e+3, 1.278476746650e-8, 3.151792246900e+3, 1.243472620074e+2, -7.904812686860e+1, 4.762678432220e+2, -1.019900735322e+3, -2.513005676292e+2, -5.924916939780e+1, -1.237408936636e+2, 5.970691220840e+1, 1.243472620074e+2, 5.255446383760e+3, 1.045563267562e-8, -1.725915110312e+2, -4.871461433960e+0, -4.150754888640e+2, 1.075269335280e+2, -1.339182640444e+3, -2.520026819128e+2, -7.904812686860e+1, 1.045503715242e-8, 5.025219194680e+3, 1.095461232690e+1, -4.143625581340e+2, -1.260054684948e+3, -8.318280168320e+1, 3.034680577260e+0, -9.347295856760e+2, 4.762678432220e+2, -1.725915110312e+2, 1.095461232690e+1, 6.411989938480e+4, 3.172261366260e-7, -6.448165752780e+2, -1.172679285326e+0, -4.135056752260e+2, -4.292224714720e+2, -1.019900735322e+3, -4.871461433960e+0, -4.143625581340e+2, 3.172261720880e-7, 6.408010473300e+4,
|
||||
2.698549372188e+3, -1.368081060516e+3, -3.209415830440e+3, 8.738658365140e+2, 7.268039280880e+2, -2.513005676292e+2, -4.150754888640e+2, -1.260054684948e+3, -6.448165752780e+2, -1.368081060516e+3, 2.965586458180e+4, 5.268769597220e-8, -5.555628715240e+0, 4.972346413560e+2, -5.924916939780e+1, 1.075269335280e+2, -8.318280168320e+1, -1.172679285326e+0, -3.209415830440e+3, 5.268504922560e-8, 2.770155230160e+4, -1.159648313612e+3, -4.345682898960e+3, -1.237408936636e+2, -1.339182640444e+3, 3.034680577260e+0, -4.135056752260e+2, 8.738658365140e+2, -5.555628715240e+0, -1.159648313612e+3, 1.243175060816e+3, 1.278480055046e-8, 5.970691220840e+1, -2.520026819128e+2, -9.347295856760e+2, -4.292224714720e+2, 7.268039280880e+2, 4.972346413560e+2, -4.345682898960e+3, 1.278476746650e-8, 3.151792246900e+3, 1.243472620074e+2, -7.904812686860e+1, 4.762678432220e+2, -1.019900735322e+3, -2.513005676292e+2, -5.924916939780e+1, -1.237408936636e+2, 5.970691220840e+1, 1.243472620074e+2, 5.255446383760e+3, 1.045563267562e-8, -1.725915110312e+2, -4.871461433960e+0, -4.150754888640e+2, 1.075269335280e+2, -1.339182640444e+3, -2.520026819128e+2, -7.904812686860e+1, 1.045503715242e-8, 5.025219194680e+3, 1.095461232690e+1, -4.143625581340e+2, -1.260054684948e+3, -8.318280168320e+1, 3.034680577260e+0, -9.347295856760e+2, 4.762678432220e+2, -1.725915110312e+2, 1.095461232690e+1, 6.411989938480e+4, 3.172261366260e-7, -6.448165752780e+2, -1.172679285326e+0, -4.135056752260e+2, -4.292224714720e+2, -1.019900735322e+3, -4.871461433960e+0, -4.143625581340e+2, 3.172261720880e-7, 6.408010473300e+4,
|
||||
2.698549372188e+3, -1.368081060516e+3, -3.209415830440e+3, 8.738658365140e+2, 7.268039280880e+2, -2.513005676292e+2, -4.150754888640e+2, -1.260054684948e+3, -6.448165752780e+2, -1.368081060516e+3, 2.965586458180e+4, 5.268769597220e-8, -5.555628715240e+0, 4.972346413560e+2, -5.924916939780e+1, 1.075269335280e+2, -8.318280168320e+1, -1.172679285326e+0, -3.209415830440e+3, 5.268504922560e-8, 2.770155230160e+4, -1.159648313612e+3, -4.345682898960e+3, -1.237408936636e+2, -1.339182640444e+3, 3.034680577260e+0, -4.135056752260e+2, 8.738658365140e+2, -5.555628715240e+0, -1.159648313612e+3, 1.243175060816e+3, 1.278480055046e-8, 5.970691220840e+1, -2.520026819128e+2, -9.347295856760e+2, -4.292224714720e+2, 7.268039280880e+2, 4.972346413560e+2, -4.345682898960e+3, 1.278476746650e-8, 3.151792246900e+3, 1.243472620074e+2, -7.904812686860e+1, 4.762678432220e+2, -1.019900735322e+3, -2.513005676292e+2, -5.924916939780e+1, -1.237408936636e+2, 5.970691220840e+1, 1.243472620074e+2, 5.255446383760e+3, 1.045563267562e-8, -1.725915110312e+2, -4.871461433960e+0, -4.150754888640e+2, 1.075269335280e+2, -1.339182640444e+3, -2.520026819128e+2, -7.904812686860e+1, 1.045503715242e-8, 5.025219194680e+3, 1.095461232690e+1, -4.143625581340e+2, -1.260054684948e+3, -8.318280168320e+1, 3.034680577260e+0, -9.347295856760e+2, 4.762678432220e+2, -1.725915110312e+2, 1.095461232690e+1, 6.411989938480e+4, 3.172261366260e-7, -6.448165752780e+2, -1.172679285326e+0, -4.135056752260e+2, -4.292224714720e+2, -1.019900735322e+3, -4.871461433960e+0, -4.143625581340e+2, 3.172261720880e-7, 6.408010473300e+4,
|
||||
2.698549372188e+3, -1.368081060516e+3, -3.209415830440e+3, 8.738658365140e+2, 7.268039280880e+2, -2.513005676292e+2, -4.150754888640e+2, -1.260054684948e+3, -6.448165752780e+2, -1.368081060516e+3, 2.965586458180e+4, 5.268769597220e-8, -5.555628715240e+0, 4.972346413560e+2, -5.924916939780e+1, 1.075269335280e+2, -8.318280168320e+1, -1.172679285326e+0, -3.209415830440e+3, 5.268504922560e-8, 2.770155230160e+4, -1.159648313612e+3, -4.345682898960e+3, -1.237408936636e+2, -1.339182640444e+3, 3.034680577260e+0, -4.135056752260e+2, 8.738658365140e+2, -5.555628715240e+0, -1.159648313612e+3, 1.243175060816e+3, 1.278480055046e-8, 5.970691220840e+1, -2.520026819128e+2, -9.347295856760e+2, -4.292224714720e+2, 7.268039280880e+2, 4.972346413560e+2, -4.345682898960e+3, 1.278476746650e-8, 3.151792246900e+3, 1.243472620074e+2, -7.904812686860e+1, 4.762678432220e+2, -1.019900735322e+3, -2.513005676292e+2, -5.924916939780e+1, -1.237408936636e+2, 5.970691220840e+1, 1.243472620074e+2, 5.255446383760e+3, 1.045563267562e-8, -1.725915110312e+2, -4.871461433960e+0, -4.150754888640e+2, 1.075269335280e+2, -1.339182640444e+3, -2.520026819128e+2, -7.904812686860e+1, 1.045503715242e-8, 5.025219194680e+3, 1.095461232690e+1, -4.143625581340e+2, -1.260054684948e+3, -8.318280168320e+1, 3.034680577260e+0, -9.347295856760e+2, 4.762678432220e+2, -1.725915110312e+2, 1.095461232690e+1, 6.411989938480e+4, 3.172261366260e-7, -6.448165752780e+2, -1.172679285326e+0, -4.135056752260e+2, -4.292224714720e+2, -1.019900735322e+3, -4.871461433960e+0, -4.143625581340e+2, 3.172261720880e-7, 6.408010473300e+4,
|
||||
2.698549372188e+3, -1.368081060516e+3, -3.209415830440e+3, 8.738658365140e+2, 7.268039280880e+2, -2.513005676292e+2, -4.150754888640e+2, -1.260054684948e+3, -6.448165752780e+2, -1.368081060516e+3, 2.965586458180e+4, 5.268769597220e-8, -5.555628715240e+0, 4.972346413560e+2, -5.924916939780e+1, 1.075269335280e+2, -8.318280168320e+1, -1.172679285326e+0, -3.209415830440e+3, 5.268504922560e-8, 2.770155230160e+4, -1.159648313612e+3, -4.345682898960e+3, -1.237408936636e+2, -1.339182640444e+3, 3.034680577260e+0, -4.135056752260e+2, 8.738658365140e+2, -5.555628715240e+0, -1.159648313612e+3, 1.243175060816e+3, 1.278480055046e-8, 5.970691220840e+1, -2.520026819128e+2, -9.347295856760e+2, -4.292224714720e+2, 7.268039280880e+2, 4.972346413560e+2, -4.345682898960e+3, 1.278476746650e-8, 3.151792246900e+3, 1.243472620074e+2, -7.904812686860e+1, 4.762678432220e+2, -1.019900735322e+3, -2.513005676292e+2, -5.924916939780e+1, -1.237408936636e+2, 5.970691220840e+1, 1.243472620074e+2, 5.255446383760e+3, 1.045563267562e-8, -1.725915110312e+2, -4.871461433960e+0, -4.150754888640e+2, 1.075269335280e+2, -1.339182640444e+3, -2.520026819128e+2, -7.904812686860e+1, 1.045503715242e-8, 5.025219194680e+3, 1.095461232690e+1, -4.143625581340e+2, -1.260054684948e+3, -8.318280168320e+1, 3.034680577260e+0, -9.347295856760e+2, 4.762678432220e+2, -1.725915110312e+2, 1.095461232690e+1, 6.411989938480e+4, 3.172261366260e-7, -6.448165752780e+2, -1.172679285326e+0, -4.135056752260e+2, -4.292224714720e+2, -1.019900735322e+3, -4.871461433960e+0, -4.143625581340e+2, 3.172261720880e-7, 6.408010473300e+4,
|
||||
2.698549372188e+3, -1.368081060516e+3, -3.209415830440e+3, 8.738658365140e+2, 7.268039280880e+2, -2.513005676292e+2, -4.150754888640e+2, -1.260054684948e+3, -6.448165752780e+2, -1.368081060516e+3, 2.965586458180e+4, 5.268769597220e-8, -5.555628715240e+0, 4.972346413560e+2, -5.924916939780e+1, 1.075269335280e+2, -8.318280168320e+1, -1.172679285326e+0, -3.209415830440e+3, 5.268504922560e-8, 2.770155230160e+4, -1.159648313612e+3, -4.345682898960e+3, -1.237408936636e+2, -1.339182640444e+3, 3.034680577260e+0, -4.135056752260e+2, 8.738658365140e+2, -5.555628715240e+0, -1.159648313612e+3, 1.243175060816e+3, 1.278480055046e-8, 5.970691220840e+1, -2.520026819128e+2, -9.347295856760e+2, -4.292224714720e+2, 7.268039280880e+2, 4.972346413560e+2, -4.345682898960e+3, 1.278476746650e-8, 3.151792246900e+3, 1.243472620074e+2, -7.904812686860e+1, 4.762678432220e+2, -1.019900735322e+3, -2.513005676292e+2, -5.924916939780e+1, -1.237408936636e+2, 5.970691220840e+1, 1.243472620074e+2, 5.255446383760e+3, 1.045563267562e-8, -1.725915110312e+2, -4.871461433960e+0, -4.150754888640e+2, 1.075269335280e+2, -1.339182640444e+3, -2.520026819128e+2, -7.904812686860e+1, 1.045503715242e-8, 5.025219194680e+3, 1.095461232690e+1, -4.143625581340e+2, -1.260054684948e+3, -8.318280168320e+1, 3.034680577260e+0, -9.347295856760e+2, 4.762678432220e+2, -1.725915110312e+2, 1.095461232690e+1, 6.411989938480e+4, 3.172261366260e-7, -6.448165752780e+2, -1.172679285326e+0, -4.135056752260e+2, -4.292224714720e+2, -1.019900735322e+3, -4.871461433960e+0, -4.143625581340e+2, 3.172261720880e-7, 6.408010473300e+4,
|
||||
2.698549372188e+3, -1.368081060516e+3, -3.209415830440e+3, 8.738658365140e+2, 7.268039280880e+2, -2.513005676292e+2, -4.150754888640e+2, -1.260054684948e+3, -6.448165752780e+2, -1.368081060516e+3, 2.965586458180e+4, 5.268769597220e-8, -5.555628715240e+0, 4.972346413560e+2, -5.924916939780e+1, 1.075269335280e+2, -8.318280168320e+1, -1.172679285326e+0, -3.209415830440e+3, 5.268504922560e-8, 2.770155230160e+4, -1.159648313612e+3, -4.345682898960e+3, -1.237408936636e+2, -1.339182640444e+3, 3.034680577260e+0, -4.135056752260e+2, 8.738658365140e+2, -5.555628715240e+0, -1.159648313612e+3, 1.243175060816e+3, 1.278480055046e-8, 5.970691220840e+1, -2.520026819128e+2, -9.347295856760e+2, -4.292224714720e+2, 7.268039280880e+2, 4.972346413560e+2, -4.345682898960e+3, 1.278476746650e-8, 3.151792246900e+3, 1.243472620074e+2, -7.904812686860e+1, 4.762678432220e+2, -1.019900735322e+3, -2.513005676292e+2, -5.924916939780e+1, -1.237408936636e+2, 5.970691220840e+1, 1.243472620074e+2, 5.255446383760e+3, 1.045563267562e-8, -1.725915110312e+2, -4.871461433960e+0, -4.150754888640e+2, 1.075269335280e+2, -1.339182640444e+3, -2.520026819128e+2, -7.904812686860e+1, 1.045503715242e-8, 5.025219194680e+3, 1.095461232690e+1, -4.143625581340e+2, -1.260054684948e+3, -8.318280168320e+1, 3.034680577260e+0, -9.347295856760e+2, 4.762678432220e+2, -1.725915110312e+2, 1.095461232690e+1, 6.411989938480e+4, 3.172261366260e-7, -6.448165752780e+2, -1.172679285326e+0, -4.135056752260e+2, -4.292224714720e+2, -1.019900735322e+3, -4.871461433960e+0, -4.143625581340e+2, 3.172261720880e-7, 6.408010473300e+4
|
||||
]
|
||||
</C>
|
||||
</thermostat>
|
||||
|
||||
|
||||
<timestep units='femtosecond'> 0.1</timestep>
|
||||
<temperature units='kelvin'>298</temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,650 +0,0 @@
|
||||
CRYST 35.233 35.233 35.233 90.00 90.00 90.00 P 1 1
|
||||
ATOM 1 O 1 1 3.846 5.672 1.323 0.00 0.00 0
|
||||
ATOM 2 H 1 1 2.979 7.054 0.857 0.00 0.00 0
|
||||
ATOM 3 H 1 1 5.525 5.697 0.451 0.00 0.00 0
|
||||
ATOM 4 O 1 1 34.557 34.341 3.078 0.00 0.00 0
|
||||
ATOM 5 H 1 1 33.722 34.689 4.840 0.00 0.00 0
|
||||
ATOM 6 H 1 1 36.029 33.220 3.711 0.00 0.00 0
|
||||
ATOM 7 O 1 1 5.591 1.963 13.477 0.00 0.00 0
|
||||
ATOM 8 H 1 1 7.265 1.864 13.851 0.00 0.00 0
|
||||
ATOM 9 H 1 1 5.009 3.555 13.916 0.00 0.00 0
|
||||
ATOM 10 O 1 1 1.060 2.061 21.718 0.00 0.00 0
|
||||
ATOM 11 H 1 1 0.757 0.261 21.820 0.00 0.00 0
|
||||
ATOM 12 H 1 1 0.213 3.013 23.047 0.00 0.00 0
|
||||
ATOM 13 O 1 1 1.200 1.337 29.006 0.00 0.00 0
|
||||
ATOM 14 H 1 1 0.818 1.884 30.732 0.00 0.00 0
|
||||
ATOM 15 H 1 1 2.883 1.825 29.011 0.00 0.00 0
|
||||
ATOM 16 O 1 1 1.331 1.386 34.306 0.00 0.00 0
|
||||
ATOM 17 H 1 1 2.392 2.898 34.846 0.00 0.00 0
|
||||
ATOM 18 H 1 1 0.814 0.532 35.836 0.00 0.00 0
|
||||
ATOM 19 O 1 1 31.451 10.201 0.726 0.00 0.00 0
|
||||
ATOM 20 H 1 1 32.282 10.877 -0.750 0.00 0.00 0
|
||||
ATOM 21 H 1 1 30.920 11.594 1.677 0.00 0.00 0
|
||||
ATOM 22 O 1 1 0.836 10.808 4.298 0.00 0.00 0
|
||||
ATOM 23 H 1 1 0.305 10.643 2.793 0.00 0.00 0
|
||||
ATOM 24 H 1 1 -0.356 10.334 5.524 0.00 0.00 0
|
||||
ATOM 25 O 1 1 34.381 5.979 9.194 0.00 0.00 0
|
||||
ATOM 26 H 1 1 33.616 7.673 8.857 0.00 0.00 0
|
||||
ATOM 27 H 1 1 35.115 5.260 7.618 0.00 0.00 0
|
||||
ATOM 28 O 1 1 33.212 6.480 24.278 0.00 0.00 0
|
||||
ATOM 29 H 1 1 31.624 6.908 23.521 0.00 0.00 0
|
||||
ATOM 30 H 1 1 32.544 4.990 24.982 0.00 0.00 0
|
||||
ATOM 31 O 1 1 1.992 9.002 26.863 0.00 0.00 0
|
||||
ATOM 32 H 1 1 1.856 10.175 25.579 0.00 0.00 0
|
||||
ATOM 33 H 1 1 0.519 8.099 26.386 0.00 0.00 0
|
||||
ATOM 34 O 1 1 2.054 8.660 32.515 0.00 0.00 0
|
||||
ATOM 35 H 1 1 2.167 8.727 30.494 0.00 0.00 0
|
||||
ATOM 36 H 1 1 2.374 10.513 33.038 0.00 0.00 0
|
||||
ATOM 37 O 1 1 3.402 16.639 3.008 0.00 0.00 0
|
||||
ATOM 38 H 1 1 4.127 15.872 4.446 0.00 0.00 0
|
||||
ATOM 39 H 1 1 2.905 18.339 3.160 0.00 0.00 0
|
||||
ATOM 40 O 1 1 4.222 15.444 8.072 0.00 0.00 0
|
||||
ATOM 41 H 1 1 5.211 16.756 8.299 0.00 0.00 0
|
||||
ATOM 42 H 1 1 2.560 15.492 8.860 0.00 0.00 0
|
||||
ATOM 43 O 1 1 2.831 9.246 16.488 0.00 0.00 0
|
||||
ATOM 44 H 1 1 2.869 8.023 18.050 0.00 0.00 0
|
||||
ATOM 45 H 1 1 3.960 8.467 15.154 0.00 0.00 0
|
||||
ATOM 46 O 1 1 5.563 6.003 20.907 0.00 0.00 0
|
||||
ATOM 47 H 1 1 4.653 4.638 21.480 0.00 0.00 0
|
||||
ATOM 48 H 1 1 6.405 6.208 22.529 0.00 0.00 0
|
||||
ATOM 49 O 1 1 2.087 13.370 22.913 0.00 0.00 0
|
||||
ATOM 50 H 1 1 2.832 14.804 23.422 0.00 0.00 0
|
||||
ATOM 51 H 1 1 1.434 13.509 21.196 0.00 0.00 0
|
||||
ATOM 52 O 1 1 3.369 17.886 25.109 0.00 0.00 0
|
||||
ATOM 53 H 1 1 3.655 17.200 26.766 0.00 0.00 0
|
||||
ATOM 54 H 1 1 4.772 18.977 24.500 0.00 0.00 0
|
||||
ATOM 55 O 1 1 34.764 20.803 0.948 0.00 0.00 0
|
||||
ATOM 56 H 1 1 35.210 21.267 2.816 0.00 0.00 0
|
||||
ATOM 57 H 1 1 35.962 21.726 0.131 0.00 0.00 0
|
||||
ATOM 58 O 1 1 2.836 24.178 15.229 0.00 0.00 0
|
||||
ATOM 59 H 1 1 2.795 22.346 14.876 0.00 0.00 0
|
||||
ATOM 60 H 1 1 2.414 24.115 17.130 0.00 0.00 0
|
||||
ATOM 61 O 1 1 33.000 24.481 15.230 0.00 0.00 0
|
||||
ATOM 62 H 1 1 34.640 24.804 15.013 0.00 0.00 0
|
||||
ATOM 63 H 1 1 32.401 25.764 14.295 0.00 0.00 0
|
||||
ATOM 64 O 1 1 0.404 26.779 23.400 0.00 0.00 0
|
||||
ATOM 65 H 1 1 1.353 27.248 24.987 0.00 0.00 0
|
||||
ATOM 66 H 1 1 1.546 28.050 22.317 0.00 0.00 0
|
||||
ATOM 67 O 1 1 34.222 21.380 25.418 0.00 0.00 0
|
||||
ATOM 68 H 1 1 35.669 20.151 25.317 0.00 0.00 0
|
||||
ATOM 69 H 1 1 32.960 21.180 23.992 0.00 0.00 0
|
||||
ATOM 70 O 1 1 33.259 17.438 32.480 0.00 0.00 0
|
||||
ATOM 71 H 1 1 33.314 18.782 33.883 0.00 0.00 0
|
||||
ATOM 72 H 1 1 32.743 18.181 30.871 0.00 0.00 0
|
||||
ATOM 73 O 1 1 4.463 21.979 3.936 0.00 0.00 0
|
||||
ATOM 74 H 1 1 5.856 23.084 3.400 0.00 0.00 0
|
||||
ATOM 75 H 1 1 3.986 22.180 5.602 0.00 0.00 0
|
||||
ATOM 76 O 1 1 6.258 25.851 8.520 0.00 0.00 0
|
||||
ATOM 77 H 1 1 5.767 27.693 8.476 0.00 0.00 0
|
||||
ATOM 78 H 1 1 7.202 25.506 10.186 0.00 0.00 0
|
||||
ATOM 79 O 1 1 0.601 29.737 12.747 0.00 0.00 0
|
||||
ATOM 80 H 1 1 -0.685 30.842 12.350 0.00 0.00 0
|
||||
ATOM 81 H 1 1 1.336 30.716 14.031 0.00 0.00 0
|
||||
ATOM 82 O 1 1 7.563 28.191 24.333 0.00 0.00 0
|
||||
ATOM 83 H 1 1 9.201 28.828 24.684 0.00 0.00 0
|
||||
ATOM 84 H 1 1 7.381 27.621 22.799 0.00 0.00 0
|
||||
ATOM 85 O 1 1 3.653 27.109 27.772 0.00 0.00 0
|
||||
ATOM 86 H 1 1 5.126 27.015 26.772 0.00 0.00 0
|
||||
ATOM 87 H 1 1 3.031 28.756 27.698 0.00 0.00 0
|
||||
ATOM 88 O 1 1 2.596 23.991 32.476 0.00 0.00 0
|
||||
ATOM 89 H 1 1 2.879 24.791 30.859 0.00 0.00 0
|
||||
ATOM 90 H 1 1 4.003 22.913 32.701 0.00 0.00 0
|
||||
ATOM 91 O 1 1 3.083 31.317 3.644 0.00 0.00 0
|
||||
ATOM 92 H 1 1 4.133 30.589 2.539 0.00 0.00 0
|
||||
ATOM 93 H 1 1 4.218 32.173 5.037 0.00 0.00 0
|
||||
ATOM 94 O 1 1 4.661 30.555 9.368 0.00 0.00 0
|
||||
ATOM 95 H 1 1 3.184 29.843 10.132 0.00 0.00 0
|
||||
ATOM 96 H 1 1 4.358 32.448 9.126 0.00 0.00 0
|
||||
ATOM 97 O 1 1 3.465 32.537 15.778 0.00 0.00 0
|
||||
ATOM 98 H 1 1 5.072 31.819 15.903 0.00 0.00 0
|
||||
ATOM 99 H 1 1 4.055 34.257 15.284 0.00 0.00 0
|
||||
ATOM 100 O 1 1 4.215 29.153 20.317 0.00 0.00 0
|
||||
ATOM 101 H 1 1 3.658 30.176 18.842 0.00 0.00 0
|
||||
ATOM 102 H 1 1 4.959 30.291 21.449 0.00 0.00 0
|
||||
ATOM 103 O 1 1 1.126 31.333 28.768 0.00 0.00 0
|
||||
ATOM 104 H 1 1 2.395 31.124 29.925 0.00 0.00 0
|
||||
ATOM 105 H 1 1 0.768 33.092 28.898 0.00 0.00 0
|
||||
ATOM 106 O 1 1 4.881 32.616 32.302 0.00 0.00 0
|
||||
ATOM 107 H 1 1 6.588 32.911 31.725 0.00 0.00 0
|
||||
ATOM 108 H 1 1 4.486 34.037 33.249 0.00 0.00 0
|
||||
ATOM 109 O 1 1 8.962 5.556 0.151 0.00 0.00 0
|
||||
ATOM 110 H 1 1 9.652 6.991 0.859 0.00 0.00 0
|
||||
ATOM 111 H 1 1 9.173 4.477 1.645 0.00 0.00 0
|
||||
ATOM 112 O 1 1 1.833 3.518 5.679 0.00 0.00 0
|
||||
ATOM 113 H 1 1 2.889 2.731 6.788 0.00 0.00 0
|
||||
ATOM 114 H 1 1 2.789 4.187 4.147 0.00 0.00 0
|
||||
ATOM 115 O 1 1 10.510 34.726 13.073 0.00 0.00 0
|
||||
ATOM 116 H 1 1 11.920 34.118 11.919 0.00 0.00 0
|
||||
ATOM 117 H 1 1 11.295 34.968 14.741 0.00 0.00 0
|
||||
ATOM 118 O 1 1 7.212 0.042 22.454 0.00 0.00 0
|
||||
ATOM 119 H 1 1 6.924 0.470 24.172 0.00 0.00 0
|
||||
ATOM 120 H 1 1 8.319 1.228 21.653 0.00 0.00 0
|
||||
ATOM 121 O 1 1 6.365 2.010 27.544 0.00 0.00 0
|
||||
ATOM 122 H 1 1 5.954 3.585 26.852 0.00 0.00 0
|
||||
ATOM 123 H 1 1 7.758 2.549 28.696 0.00 0.00 0
|
||||
ATOM 124 O 1 1 10.833 3.140 30.787 0.00 0.00 0
|
||||
ATOM 125 H 1 1 12.697 2.975 30.867 0.00 0.00 0
|
||||
ATOM 126 H 1 1 10.389 3.700 32.404 0.00 0.00 0
|
||||
ATOM 127 O 1 1 8.684 9.342 3.912 0.00 0.00 0
|
||||
ATOM 128 H 1 1 6.985 9.256 4.773 0.00 0.00 0
|
||||
ATOM 129 H 1 1 8.684 10.809 3.011 0.00 0.00 0
|
||||
ATOM 130 O 1 1 4.873 9.919 7.707 0.00 0.00 0
|
||||
ATOM 131 H 1 1 3.698 9.771 6.194 0.00 0.00 0
|
||||
ATOM 132 H 1 1 5.047 11.961 7.624 0.00 0.00 0
|
||||
ATOM 133 O 1 1 10.031 5.018 9.699 0.00 0.00 0
|
||||
ATOM 134 H 1 1 9.675 3.382 10.340 0.00 0.00 0
|
||||
ATOM 135 H 1 1 9.132 5.987 10.825 0.00 0.00 0
|
||||
ATOM 136 O 1 1 11.246 3.918 21.929 0.00 0.00 0
|
||||
ATOM 137 H 1 1 12.614 2.770 22.341 0.00 0.00 0
|
||||
ATOM 138 H 1 1 12.073 5.686 21.497 0.00 0.00 0
|
||||
ATOM 139 O 1 1 6.825 7.164 25.708 0.00 0.00 0
|
||||
ATOM 140 H 1 1 8.036 8.374 25.980 0.00 0.00 0
|
||||
ATOM 141 H 1 1 5.206 7.900 25.891 0.00 0.00 0
|
||||
ATOM 142 O 1 1 10.171 12.811 0.295 0.00 0.00 0
|
||||
ATOM 143 H 1 1 10.033 12.818 -1.609 0.00 0.00 0
|
||||
ATOM 144 H 1 1 9.880 14.492 0.480 0.00 0.00 0
|
||||
ATOM 145 O 1 1 8.190 17.402 1.253 0.00 0.00 0
|
||||
ATOM 146 H 1 1 9.472 18.531 1.253 0.00 0.00 0
|
||||
ATOM 147 H 1 1 6.351 17.817 1.568 0.00 0.00 0
|
||||
ATOM 148 O 1 1 11.233 16.188 8.299 0.00 0.00 0
|
||||
ATOM 149 H 1 1 10.291 17.689 8.166 0.00 0.00 0
|
||||
ATOM 150 H 1 1 12.768 17.123 8.733 0.00 0.00 0
|
||||
ATOM 151 O 1 1 6.386 8.002 12.846 0.00 0.00 0
|
||||
ATOM 152 H 1 1 7.701 8.896 13.655 0.00 0.00 0
|
||||
ATOM 153 H 1 1 5.591 8.877 11.519 0.00 0.00 0
|
||||
ATOM 154 O 1 1 8.184 10.419 18.848 0.00 0.00 0
|
||||
ATOM 155 H 1 1 9.498 9.434 19.905 0.00 0.00 0
|
||||
ATOM 156 H 1 1 6.882 9.027 18.948 0.00 0.00 0
|
||||
ATOM 157 O 1 1 10.806 14.431 21.328 0.00 0.00 0
|
||||
ATOM 158 H 1 1 9.177 13.531 20.670 0.00 0.00 0
|
||||
ATOM 159 H 1 1 11.344 15.696 20.448 0.00 0.00 0
|
||||
ATOM 160 O 1 1 9.237 13.928 30.341 0.00 0.00 0
|
||||
ATOM 161 H 1 1 10.779 14.839 30.522 0.00 0.00 0
|
||||
ATOM 162 H 1 1 9.965 13.192 28.899 0.00 0.00 0
|
||||
ATOM 163 O 1 1 10.918 21.707 1.864 0.00 0.00 0
|
||||
ATOM 164 H 1 1 10.280 23.449 2.279 0.00 0.00 0
|
||||
ATOM 165 H 1 1 12.708 21.456 1.749 0.00 0.00 0
|
||||
ATOM 166 O 1 1 9.353 16.125 13.927 0.00 0.00 0
|
||||
ATOM 167 H 1 1 9.938 17.594 14.618 0.00 0.00 0
|
||||
ATOM 168 H 1 1 9.518 16.360 12.244 0.00 0.00 0
|
||||
ATOM 169 O 1 1 10.371 11.107 14.268 0.00 0.00 0
|
||||
ATOM 170 H 1 1 9.644 10.406 15.859 0.00 0.00 0
|
||||
ATOM 171 H 1 1 9.434 12.523 14.117 0.00 0.00 0
|
||||
ATOM 172 O 1 1 3.351 22.769 20.196 0.00 0.00 0
|
||||
ATOM 173 H 1 1 2.055 23.686 21.503 0.00 0.00 0
|
||||
ATOM 174 H 1 1 2.452 21.401 19.413 0.00 0.00 0
|
||||
ATOM 175 O 1 1 6.836 21.329 23.199 0.00 0.00 0
|
||||
ATOM 176 H 1 1 8.249 20.848 22.320 0.00 0.00 0
|
||||
ATOM 177 H 1 1 5.668 21.841 21.886 0.00 0.00 0
|
||||
ATOM 178 O 1 1 4.604 15.649 30.043 0.00 0.00 0
|
||||
ATOM 179 H 1 1 6.453 15.217 30.207 0.00 0.00 0
|
||||
ATOM 180 H 1 1 3.822 14.762 31.562 0.00 0.00 0
|
||||
ATOM 181 O 1 1 7.125 19.976 9.421 0.00 0.00 0
|
||||
ATOM 182 H 1 1 5.918 20.453 10.730 0.00 0.00 0
|
||||
ATOM 183 H 1 1 8.099 21.496 9.491 0.00 0.00 0
|
||||
ATOM 184 O 1 1 9.063 25.912 13.186 0.00 0.00 0
|
||||
ATOM 185 H 1 1 10.350 26.572 12.367 0.00 0.00 0
|
||||
ATOM 186 H 1 1 9.680 24.367 13.697 0.00 0.00 0
|
||||
ATOM 187 O 1 1 8.022 22.343 17.042 0.00 0.00 0
|
||||
ATOM 188 H 1 1 9.144 23.367 18.074 0.00 0.00 0
|
||||
ATOM 189 H 1 1 6.562 23.462 16.852 0.00 0.00 0
|
||||
ATOM 190 O 1 1 10.762 26.285 19.963 0.00 0.00 0
|
||||
ATOM 191 H 1 1 11.036 27.966 20.538 0.00 0.00 0
|
||||
ATOM 192 H 1 1 11.078 25.401 21.456 0.00 0.00 0
|
||||
ATOM 193 O 1 1 9.158 22.902 28.391 0.00 0.00 0
|
||||
ATOM 194 H 1 1 8.219 23.528 27.085 0.00 0.00 0
|
||||
ATOM 195 H 1 1 8.089 21.760 29.509 0.00 0.00 0
|
||||
ATOM 196 O 1 1 6.219 20.158 31.921 0.00 0.00 0
|
||||
ATOM 197 H 1 1 5.635 18.511 31.161 0.00 0.00 0
|
||||
ATOM 198 H 1 1 7.530 19.624 33.071 0.00 0.00 0
|
||||
ATOM 199 O 1 1 11.191 31.509 2.617 0.00 0.00 0
|
||||
ATOM 200 H 1 1 10.460 32.214 4.108 0.00 0.00 0
|
||||
ATOM 201 H 1 1 13.176 31.751 2.577 0.00 0.00 0
|
||||
ATOM 202 O 1 1 4.748 0.055 8.605 0.00 0.00 0
|
||||
ATOM 203 H 1 1 5.380 0.517 10.183 0.00 0.00 0
|
||||
ATOM 204 H 1 1 6.050 -0.306 7.480 0.00 0.00 0
|
||||
ATOM 205 O 1 1 8.695 30.809 15.731 0.00 0.00 0
|
||||
ATOM 206 H 1 1 9.189 32.103 14.495 0.00 0.00 0
|
||||
ATOM 207 H 1 1 8.447 29.069 14.868 0.00 0.00 0
|
||||
ATOM 208 O 1 1 10.128 31.402 20.766 0.00 0.00 0
|
||||
ATOM 209 H 1 1 9.456 30.905 19.155 0.00 0.00 0
|
||||
ATOM 210 H 1 1 9.020 32.731 21.415 0.00 0.00 0
|
||||
ATOM 211 O 1 1 12.238 30.162 25.837 0.00 0.00 0
|
||||
ATOM 212 H 1 1 11.418 30.908 27.110 0.00 0.00 0
|
||||
ATOM 213 H 1 1 12.396 31.331 24.678 0.00 0.00 0
|
||||
ATOM 214 O 1 1 10.395 32.537 30.624 0.00 0.00 0
|
||||
ATOM 215 H 1 1 11.042 34.339 30.751 0.00 0.00 0
|
||||
ATOM 216 H 1 1 11.378 31.486 31.538 0.00 0.00 0
|
||||
ATOM 217 O 1 1 10.438 3.626 5.087 0.00 0.00 0
|
||||
ATOM 218 H 1 1 12.435 4.082 5.136 0.00 0.00 0
|
||||
ATOM 219 H 1 1 9.822 4.284 6.681 0.00 0.00 0
|
||||
ATOM 220 O 1 1 14.762 3.401 13.776 0.00 0.00 0
|
||||
ATOM 221 H 1 1 16.518 3.824 13.376 0.00 0.00 0
|
||||
ATOM 222 H 1 1 13.752 4.757 12.964 0.00 0.00 0
|
||||
ATOM 223 O 1 1 12.382 1.012 17.643 0.00 0.00 0
|
||||
ATOM 224 H 1 1 13.346 1.997 16.444 0.00 0.00 0
|
||||
ATOM 225 H 1 1 11.931 2.133 18.998 0.00 0.00 0
|
||||
ATOM 226 O 1 1 15.278 1.293 24.559 0.00 0.00 0
|
||||
ATOM 227 H 1 1 16.071 0.946 26.365 0.00 0.00 0
|
||||
ATOM 228 H 1 1 15.794 0.199 23.499 0.00 0.00 0
|
||||
ATOM 229 O 1 1 22.226 31.627 24.712 0.00 0.00 0
|
||||
ATOM 230 H 1 1 23.338 32.595 23.876 0.00 0.00 0
|
||||
ATOM 231 H 1 1 22.161 30.053 24.132 0.00 0.00 0
|
||||
ATOM 232 O 1 1 15.640 1.847 32.717 0.00 0.00 0
|
||||
ATOM 233 H 1 1 17.488 2.473 31.874 0.00 0.00 0
|
||||
ATOM 234 H 1 1 16.403 0.869 34.267 0.00 0.00 0
|
||||
ATOM 235 O 1 1 14.858 10.199 2.754 0.00 0.00 0
|
||||
ATOM 236 H 1 1 13.360 10.712 2.282 0.00 0.00 0
|
||||
ATOM 237 H 1 1 14.560 9.316 4.559 0.00 0.00 0
|
||||
ATOM 238 O 1 1 15.717 8.469 10.739 0.00 0.00 0
|
||||
ATOM 239 H 1 1 17.323 9.581 10.875 0.00 0.00 0
|
||||
ATOM 240 H 1 1 14.574 9.631 10.221 0.00 0.00 0
|
||||
ATOM 241 O 1 1 15.248 10.398 16.525 0.00 0.00 0
|
||||
ATOM 242 H 1 1 16.324 9.181 16.149 0.00 0.00 0
|
||||
ATOM 243 H 1 1 14.172 10.488 15.098 0.00 0.00 0
|
||||
ATOM 244 O 1 1 13.226 8.438 20.801 0.00 0.00 0
|
||||
ATOM 245 H 1 1 14.043 8.996 19.295 0.00 0.00 0
|
||||
ATOM 246 H 1 1 14.661 7.802 22.093 0.00 0.00 0
|
||||
ATOM 247 O 1 1 10.173 10.961 25.875 0.00 0.00 0
|
||||
ATOM 248 H 1 1 11.477 10.223 26.940 0.00 0.00 0
|
||||
ATOM 249 H 1 1 11.269 10.738 24.343 0.00 0.00 0
|
||||
ATOM 250 O 1 1 12.792 7.737 29.173 0.00 0.00 0
|
||||
ATOM 251 H 1 1 12.199 6.038 29.475 0.00 0.00 0
|
||||
ATOM 252 H 1 1 14.427 7.450 29.617 0.00 0.00 0
|
||||
ATOM 253 O 1 1 15.180 19.498 3.578 0.00 0.00 0
|
||||
ATOM 254 H 1 1 14.883 17.596 4.080 0.00 0.00 0
|
||||
ATOM 255 H 1 1 16.754 19.579 2.626 0.00 0.00 0
|
||||
ATOM 256 O 1 1 12.517 11.093 7.701 0.00 0.00 0
|
||||
ATOM 257 H 1 1 12.224 12.778 7.555 0.00 0.00 0
|
||||
ATOM 258 H 1 1 11.150 10.393 7.057 0.00 0.00 0
|
||||
ATOM 259 O 1 1 16.266 16.271 10.758 0.00 0.00 0
|
||||
ATOM 260 H 1 1 16.507 15.795 12.768 0.00 0.00 0
|
||||
ATOM 261 H 1 1 17.725 16.977 10.292 0.00 0.00 0
|
||||
ATOM 262 O 1 1 14.069 18.399 18.897 0.00 0.00 0
|
||||
ATOM 263 H 1 1 15.513 17.523 18.155 0.00 0.00 0
|
||||
ATOM 264 H 1 1 14.958 18.709 20.673 0.00 0.00 0
|
||||
ATOM 265 O 1 1 14.099 15.480 25.510 0.00 0.00 0
|
||||
ATOM 266 H 1 1 13.698 16.872 26.938 0.00 0.00 0
|
||||
ATOM 267 H 1 1 12.567 15.379 24.444 0.00 0.00 0
|
||||
ATOM 268 O 1 1 13.309 17.574 30.292 0.00 0.00 0
|
||||
ATOM 269 H 1 1 14.937 16.934 30.810 0.00 0.00 0
|
||||
ATOM 270 H 1 1 13.969 19.494 30.012 0.00 0.00 0
|
||||
ATOM 271 O 1 1 18.371 23.257 0.925 0.00 0.00 0
|
||||
ATOM 272 H 1 1 19.479 23.480 2.321 0.00 0.00 0
|
||||
ATOM 273 H 1 1 19.087 24.325 -0.369 0.00 0.00 0
|
||||
ATOM 274 O 1 1 12.100 21.730 11.355 0.00 0.00 0
|
||||
ATOM 275 H 1 1 13.141 22.287 12.743 0.00 0.00 0
|
||||
ATOM 276 H 1 1 13.467 22.236 10.244 0.00 0.00 0
|
||||
ATOM 277 O 1 1 12.163 23.290 23.597 0.00 0.00 0
|
||||
ATOM 278 H 1 1 11.324 22.736 24.949 0.00 0.00 0
|
||||
ATOM 279 H 1 1 13.882 22.872 23.840 0.00 0.00 0
|
||||
ATOM 280 O 1 1 20.173 26.761 22.628 0.00 0.00 0
|
||||
ATOM 281 H 1 1 20.206 26.532 20.792 0.00 0.00 0
|
||||
ATOM 282 H 1 1 21.556 25.742 23.389 0.00 0.00 0
|
||||
ATOM 283 O 1 1 16.701 21.165 22.605 0.00 0.00 0
|
||||
ATOM 284 H 1 1 18.028 20.686 23.848 0.00 0.00 0
|
||||
ATOM 285 H 1 1 17.104 22.866 21.949 0.00 0.00 0
|
||||
ATOM 286 O 1 1 11.391 26.461 33.705 0.00 0.00 0
|
||||
ATOM 287 H 1 1 9.841 27.192 34.048 0.00 0.00 0
|
||||
ATOM 288 H 1 1 11.776 25.540 35.243 0.00 0.00 0
|
||||
ATOM 289 O 1 1 9.898 25.989 4.553 0.00 0.00 0
|
||||
ATOM 290 H 1 1 8.902 26.131 6.039 0.00 0.00 0
|
||||
ATOM 291 H 1 1 10.287 27.806 4.376 0.00 0.00 0
|
||||
ATOM 292 O 1 1 14.308 26.960 10.877 0.00 0.00 0
|
||||
ATOM 293 H 1 1 15.302 27.405 12.173 0.00 0.00 0
|
||||
ATOM 294 H 1 1 15.463 26.151 9.633 0.00 0.00 0
|
||||
ATOM 295 O 1 1 13.433 22.960 16.904 0.00 0.00 0
|
||||
ATOM 296 H 1 1 13.409 24.131 18.132 0.00 0.00 0
|
||||
ATOM 297 H 1 1 13.624 21.191 17.520 0.00 0.00 0
|
||||
ATOM 298 O 1 1 16.409 26.768 26.875 0.00 0.00 0
|
||||
ATOM 299 H 1 1 17.590 26.987 25.431 0.00 0.00 0
|
||||
ATOM 300 H 1 1 14.751 27.703 26.230 0.00 0.00 0
|
||||
ATOM 301 O 1 1 14.405 22.733 29.892 0.00 0.00 0
|
||||
ATOM 302 H 1 1 15.423 23.079 28.494 0.00 0.00 0
|
||||
ATOM 303 H 1 1 12.826 23.259 29.416 0.00 0.00 0
|
||||
ATOM 304 O 1 1 6.905 29.408 0.749 0.00 0.00 0
|
||||
ATOM 305 H 1 1 8.428 30.483 1.567 0.00 0.00 0
|
||||
ATOM 306 H 1 1 6.353 30.814 -0.444 0.00 0.00 0
|
||||
ATOM 307 O 1 1 9.189 34.159 6.509 0.00 0.00 0
|
||||
ATOM 308 H 1 1 10.198 34.193 8.002 0.00 0.00 0
|
||||
ATOM 309 H 1 1 9.890 35.692 5.785 0.00 0.00 0
|
||||
ATOM 310 O 1 1 14.256 32.316 9.369 0.00 0.00 0
|
||||
ATOM 311 H 1 1 15.733 32.867 9.486 0.00 0.00 0
|
||||
ATOM 312 H 1 1 14.754 30.670 10.090 0.00 0.00 0
|
||||
ATOM 313 O 1 1 14.714 30.841 16.516 0.00 0.00 0
|
||||
ATOM 314 H 1 1 13.748 29.551 17.279 0.00 0.00 0
|
||||
ATOM 315 H 1 1 13.218 31.933 16.614 0.00 0.00 0
|
||||
ATOM 316 O 1 1 18.409 33.641 20.611 0.00 0.00 0
|
||||
ATOM 317 H 1 1 19.601 32.274 21.115 0.00 0.00 0
|
||||
ATOM 318 H 1 1 17.360 32.655 19.518 0.00 0.00 0
|
||||
ATOM 319 O 1 1 16.062 28.638 32.207 0.00 0.00 0
|
||||
ATOM 320 H 1 1 14.648 27.958 33.253 0.00 0.00 0
|
||||
ATOM 321 H 1 1 15.752 28.014 30.522 0.00 0.00 0
|
||||
ATOM 322 O 1 1 16.200 30.895 1.473 0.00 0.00 0
|
||||
ATOM 323 H 1 1 16.626 29.968 -0.130 0.00 0.00 0
|
||||
ATOM 324 H 1 1 17.167 29.833 2.927 0.00 0.00 0
|
||||
ATOM 325 O 1 1 20.278 3.529 6.048 0.00 0.00 0
|
||||
ATOM 326 H 1 1 20.977 3.611 4.575 0.00 0.00 0
|
||||
ATOM 327 H 1 1 21.312 4.513 7.251 0.00 0.00 0
|
||||
ATOM 328 O 1 1 23.079 5.778 10.408 0.00 0.00 0
|
||||
ATOM 329 H 1 1 24.650 6.259 10.838 0.00 0.00 0
|
||||
ATOM 330 H 1 1 22.342 7.609 10.178 0.00 0.00 0
|
||||
ATOM 331 O 1 1 19.581 2.031 12.110 0.00 0.00 0
|
||||
ATOM 332 H 1 1 19.039 1.082 10.440 0.00 0.00 0
|
||||
ATOM 333 H 1 1 21.141 2.991 11.851 0.00 0.00 0
|
||||
ATOM 334 O 1 1 22.005 3.223 23.178 0.00 0.00 0
|
||||
ATOM 335 H 1 1 21.429 4.090 24.554 0.00 0.00 0
|
||||
ATOM 336 H 1 1 20.654 1.791 22.711 0.00 0.00 0
|
||||
ATOM 337 O 1 1 16.630 6.422 23.792 0.00 0.00 0
|
||||
ATOM 338 H 1 1 16.219 4.804 24.406 0.00 0.00 0
|
||||
ATOM 339 H 1 1 17.066 7.128 25.282 0.00 0.00 0
|
||||
ATOM 340 O 1 1 21.676 5.564 28.158 0.00 0.00 0
|
||||
ATOM 341 H 1 1 20.658 6.717 29.185 0.00 0.00 0
|
||||
ATOM 342 H 1 1 23.413 5.828 28.996 0.00 0.00 0
|
||||
ATOM 343 O 1 1 15.257 5.265 5.626 0.00 0.00 0
|
||||
ATOM 344 H 1 1 16.914 4.519 5.490 0.00 0.00 0
|
||||
ATOM 345 H 1 1 15.144 6.150 6.972 0.00 0.00 0
|
||||
ATOM 346 O 1 1 20.137 11.082 10.437 0.00 0.00 0
|
||||
ATOM 347 H 1 1 20.021 10.947 8.733 0.00 0.00 0
|
||||
ATOM 348 H 1 1 21.025 12.555 10.853 0.00 0.00 0
|
||||
ATOM 349 O 1 1 23.089 14.627 12.437 0.00 0.00 0
|
||||
ATOM 350 H 1 1 24.716 15.254 12.736 0.00 0.00 0
|
||||
ATOM 351 H 1 1 23.284 13.228 13.653 0.00 0.00 0
|
||||
ATOM 352 O 1 1 24.083 12.649 22.566 0.00 0.00 0
|
||||
ATOM 353 H 1 1 22.397 12.663 23.042 0.00 0.00 0
|
||||
ATOM 354 H 1 1 24.901 13.851 23.565 0.00 0.00 0
|
||||
ATOM 355 O 1 1 17.865 7.909 30.036 0.00 0.00 0
|
||||
ATOM 356 H 1 1 17.509 8.045 31.982 0.00 0.00 0
|
||||
ATOM 357 H 1 1 18.078 9.582 29.318 0.00 0.00 0
|
||||
ATOM 358 O 1 1 18.824 8.486 0.104 0.00 0.00 0
|
||||
ATOM 359 H 1 1 19.997 10.191 -0.057 0.00 0.00 0
|
||||
ATOM 360 H 1 1 17.077 8.998 0.779 0.00 0.00 0
|
||||
ATOM 361 O 1 1 20.122 9.143 5.343 0.00 0.00 0
|
||||
ATOM 362 H 1 1 19.373 8.819 3.821 0.00 0.00 0
|
||||
ATOM 363 H 1 1 21.998 8.776 5.128 0.00 0.00 0
|
||||
ATOM 364 O 1 1 16.413 14.459 5.855 0.00 0.00 0
|
||||
ATOM 365 H 1 1 15.536 13.007 5.239 0.00 0.00 0
|
||||
ATOM 366 H 1 1 16.006 14.725 7.737 0.00 0.00 0
|
||||
ATOM 367 O 1 1 17.561 15.066 15.654 0.00 0.00 0
|
||||
ATOM 368 H 1 1 17.575 13.398 16.055 0.00 0.00 0
|
||||
ATOM 369 H 1 1 18.978 15.828 16.400 0.00 0.00 0
|
||||
ATOM 370 O 1 1 26.374 17.047 24.817 0.00 0.00 0
|
||||
ATOM 371 H 1 1 27.983 17.098 25.632 0.00 0.00 0
|
||||
ATOM 372 H 1 1 25.629 18.751 24.919 0.00 0.00 0
|
||||
ATOM 373 O 1 1 19.784 12.960 28.706 0.00 0.00 0
|
||||
ATOM 374 H 1 1 21.662 13.055 28.871 0.00 0.00 0
|
||||
ATOM 375 H 1 1 19.545 14.070 27.143 0.00 0.00 0
|
||||
ATOM 376 O 1 1 17.891 16.733 32.499 0.00 0.00 0
|
||||
ATOM 377 H 1 1 18.327 15.240 31.277 0.00 0.00 0
|
||||
ATOM 378 H 1 1 18.633 18.335 31.693 0.00 0.00 0
|
||||
ATOM 379 O 1 1 23.733 23.024 1.663 0.00 0.00 0
|
||||
ATOM 380 H 1 1 24.800 24.052 2.776 0.00 0.00 0
|
||||
ATOM 381 H 1 1 24.693 22.618 0.198 0.00 0.00 0
|
||||
ATOM 382 O 1 1 20.789 18.440 9.443 0.00 0.00 0
|
||||
ATOM 383 H 1 1 20.766 17.257 7.881 0.00 0.00 0
|
||||
ATOM 384 H 1 1 21.896 17.345 10.385 0.00 0.00 0
|
||||
ATOM 385 O 1 1 21.574 17.493 17.838 0.00 0.00 0
|
||||
ATOM 386 H 1 1 20.597 18.955 17.218 0.00 0.00 0
|
||||
ATOM 387 H 1 1 22.538 16.874 16.251 0.00 0.00 0
|
||||
ATOM 388 O 1 1 19.168 14.748 24.131 0.00 0.00 0
|
||||
ATOM 389 H 1 1 19.711 16.390 23.712 0.00 0.00 0
|
||||
ATOM 390 H 1 1 17.429 14.695 24.403 0.00 0.00 0
|
||||
ATOM 391 O 1 1 22.149 20.198 24.977 0.00 0.00 0
|
||||
ATOM 392 H 1 1 21.639 20.924 26.486 0.00 0.00 0
|
||||
ATOM 393 H 1 1 22.656 21.657 24.411 0.00 0.00 0
|
||||
ATOM 394 O 1 1 20.565 20.792 29.600 0.00 0.00 0
|
||||
ATOM 395 H 1 1 22.264 20.409 30.214 0.00 0.00 0
|
||||
ATOM 396 H 1 1 20.548 22.408 30.597 0.00 0.00 0
|
||||
ATOM 397 O 1 1 20.802 26.547 9.615 0.00 0.00 0
|
||||
ATOM 398 H 1 1 20.099 27.984 8.338 0.00 0.00 0
|
||||
ATOM 399 H 1 1 21.277 27.539 11.325 0.00 0.00 0
|
||||
ATOM 400 O 1 1 16.283 23.589 7.779 0.00 0.00 0
|
||||
ATOM 401 H 1 1 16.093 21.973 6.712 0.00 0.00 0
|
||||
ATOM 402 H 1 1 17.901 22.971 8.154 0.00 0.00 0
|
||||
ATOM 403 O 1 1 18.469 29.798 13.568 0.00 0.00 0
|
||||
ATOM 404 H 1 1 19.712 31.216 13.506 0.00 0.00 0
|
||||
ATOM 405 H 1 1 16.872 30.343 14.396 0.00 0.00 0
|
||||
ATOM 406 O 1 1 18.790 21.712 16.060 0.00 0.00 0
|
||||
ATOM 407 H 1 1 19.878 23.090 16.485 0.00 0.00 0
|
||||
ATOM 408 H 1 1 17.201 22.326 15.819 0.00 0.00 0
|
||||
ATOM 409 O 1 1 21.747 26.084 16.349 0.00 0.00 0
|
||||
ATOM 410 H 1 1 20.783 27.021 15.300 0.00 0.00 0
|
||||
ATOM 411 H 1 1 22.705 27.328 17.206 0.00 0.00 0
|
||||
ATOM 412 O 1 1 20.769 26.211 32.050 0.00 0.00 0
|
||||
ATOM 413 H 1 1 21.488 27.404 33.328 0.00 0.00 0
|
||||
ATOM 414 H 1 1 18.989 26.710 32.145 0.00 0.00 0
|
||||
ATOM 415 O 1 1 19.820 29.181 5.559 0.00 0.00 0
|
||||
ATOM 416 H 1 1 20.991 29.509 4.109 0.00 0.00 0
|
||||
ATOM 417 H 1 1 19.431 31.018 6.221 0.00 0.00 0
|
||||
ATOM 418 O 1 1 19.240 33.867 7.993 0.00 0.00 0
|
||||
ATOM 419 H 1 1 19.107 35.039 6.604 0.00 0.00 0
|
||||
ATOM 420 H 1 1 20.697 33.671 9.063 0.00 0.00 0
|
||||
ATOM 421 O 1 1 22.511 34.976 15.793 0.00 0.00 0
|
||||
ATOM 422 H 1 1 23.716 36.163 16.603 0.00 0.00 0
|
||||
ATOM 423 H 1 1 21.699 36.150 14.467 0.00 0.00 0
|
||||
ATOM 424 O 1 1 22.622 30.284 19.069 0.00 0.00 0
|
||||
ATOM 425 H 1 1 22.049 31.351 17.725 0.00 0.00 0
|
||||
ATOM 426 H 1 1 24.411 30.773 19.576 0.00 0.00 0
|
||||
ATOM 427 O 1 1 18.639 33.611 28.369 0.00 0.00 0
|
||||
ATOM 428 H 1 1 18.226 32.159 29.103 0.00 0.00 0
|
||||
ATOM 429 H 1 1 19.906 33.008 27.158 0.00 0.00 0
|
||||
ATOM 430 O 1 1 22.520 1.325 31.926 0.00 0.00 0
|
||||
ATOM 431 H 1 1 22.803 2.668 30.796 0.00 0.00 0
|
||||
ATOM 432 H 1 1 21.045 0.425 31.122 0.00 0.00 0
|
||||
ATOM 433 O 1 1 21.754 3.789 1.159 0.00 0.00 0
|
||||
ATOM 434 H 1 1 22.085 2.785 -0.180 0.00 0.00 0
|
||||
ATOM 435 H 1 1 20.850 5.175 0.610 0.00 0.00 0
|
||||
ATOM 436 O 1 1 28.457 5.539 12.133 0.00 0.00 0
|
||||
ATOM 437 H 1 1 29.489 4.390 11.182 0.00 0.00 0
|
||||
ATOM 438 H 1 1 29.161 7.131 12.587 0.00 0.00 0
|
||||
ATOM 439 O 1 1 22.495 5.966 17.324 0.00 0.00 0
|
||||
ATOM 440 H 1 1 24.377 5.379 17.393 0.00 0.00 0
|
||||
ATOM 441 H 1 1 21.906 5.491 18.857 0.00 0.00 0
|
||||
ATOM 442 O 1 1 28.128 3.304 22.287 0.00 0.00 0
|
||||
ATOM 443 H 1 1 28.123 2.999 20.491 0.00 0.00 0
|
||||
ATOM 444 H 1 1 26.533 3.355 22.876 0.00 0.00 0
|
||||
ATOM 445 O 1 1 28.378 10.455 27.266 0.00 0.00 0
|
||||
ATOM 446 H 1 1 30.019 10.292 28.051 0.00 0.00 0
|
||||
ATOM 447 H 1 1 28.635 10.039 25.463 0.00 0.00 0
|
||||
ATOM 448 O 1 1 27.031 8.353 34.806 0.00 0.00 0
|
||||
ATOM 449 H 1 1 26.116 9.984 34.571 0.00 0.00 0
|
||||
ATOM 450 H 1 1 28.685 8.951 34.739 0.00 0.00 0
|
||||
ATOM 451 O 1 1 24.951 8.160 4.454 0.00 0.00 0
|
||||
ATOM 452 H 1 1 25.930 9.616 5.160 0.00 0.00 0
|
||||
ATOM 453 H 1 1 25.947 7.994 2.724 0.00 0.00 0
|
||||
ATOM 454 O 1 1 26.937 12.436 6.869 0.00 0.00 0
|
||||
ATOM 455 H 1 1 25.492 13.284 6.708 0.00 0.00 0
|
||||
ATOM 456 H 1 1 27.689 13.332 8.266 0.00 0.00 0
|
||||
ATOM 457 O 1 1 23.365 11.214 16.933 0.00 0.00 0
|
||||
ATOM 458 H 1 1 22.247 9.744 16.789 0.00 0.00 0
|
||||
ATOM 459 H 1 1 23.264 12.035 18.539 0.00 0.00 0
|
||||
ATOM 460 O 1 1 28.321 8.759 22.158 0.00 0.00 0
|
||||
ATOM 461 H 1 1 27.662 6.895 22.482 0.00 0.00 0
|
||||
ATOM 462 H 1 1 26.971 9.710 21.902 0.00 0.00 0
|
||||
ATOM 463 O 1 1 27.071 6.109 29.555 0.00 0.00 0
|
||||
ATOM 464 H 1 1 27.591 7.663 28.857 0.00 0.00 0
|
||||
ATOM 465 H 1 1 27.304 6.320 31.261 0.00 0.00 0
|
||||
ATOM 466 O 1 1 22.474 11.704 34.640 0.00 0.00 0
|
||||
ATOM 467 H 1 1 22.752 13.304 35.584 0.00 0.00 0
|
||||
ATOM 468 H 1 1 22.840 12.090 33.030 0.00 0.00 0
|
||||
ATOM 469 O 1 1 21.656 14.971 5.615 0.00 0.00 0
|
||||
ATOM 470 H 1 1 21.690 15.860 3.977 0.00 0.00 0
|
||||
ATOM 471 H 1 1 19.964 14.225 5.774 0.00 0.00 0
|
||||
ATOM 472 O 1 1 28.539 21.492 9.820 0.00 0.00 0
|
||||
ATOM 473 H 1 1 27.288 22.181 8.688 0.00 0.00 0
|
||||
ATOM 474 H 1 1 28.065 22.420 11.602 0.00 0.00 0
|
||||
ATOM 475 O 1 1 28.364 16.020 11.109 0.00 0.00 0
|
||||
ATOM 476 H 1 1 30.033 16.649 12.089 0.00 0.00 0
|
||||
ATOM 477 H 1 1 28.456 17.440 10.082 0.00 0.00 0
|
||||
ATOM 478 O 1 1 0.054 13.686 18.103 0.00 0.00 0
|
||||
ATOM 479 H 1 1 -1.714 12.928 18.841 0.00 0.00 0
|
||||
ATOM 480 H 1 1 1.008 12.429 17.383 0.00 0.00 0
|
||||
ATOM 481 O 1 1 24.636 12.894 29.957 0.00 0.00 0
|
||||
ATOM 482 H 1 1 25.906 13.914 31.183 0.00 0.00 0
|
||||
ATOM 483 H 1 1 25.641 11.609 29.162 0.00 0.00 0
|
||||
ATOM 484 O 1 1 21.548 17.250 0.749 0.00 0.00 0
|
||||
ATOM 485 H 1 1 21.843 19.026 0.905 0.00 0.00 0
|
||||
ATOM 486 H 1 1 20.385 16.716 -0.697 0.00 0.00 0
|
||||
ATOM 487 O 1 1 26.095 27.274 4.520 0.00 0.00 0
|
||||
ATOM 488 H 1 1 27.889 26.458 4.505 0.00 0.00 0
|
||||
ATOM 489 H 1 1 25.648 26.970 6.165 0.00 0.00 0
|
||||
ATOM 490 O 1 1 23.610 22.515 8.008 0.00 0.00 0
|
||||
ATOM 491 H 1 1 22.653 21.187 8.739 0.00 0.00 0
|
||||
ATOM 492 H 1 1 22.286 24.095 8.444 0.00 0.00 0
|
||||
ATOM 493 O 1 1 27.355 18.929 18.180 0.00 0.00 0
|
||||
ATOM 494 H 1 1 27.200 20.349 17.155 0.00 0.00 0
|
||||
ATOM 495 H 1 1 25.579 18.322 18.770 0.00 0.00 0
|
||||
ATOM 496 O 1 1 26.765 23.633 14.444 0.00 0.00 0
|
||||
ATOM 497 H 1 1 27.441 25.298 13.651 0.00 0.00 0
|
||||
ATOM 498 H 1 1 25.086 24.256 14.749 0.00 0.00 0
|
||||
ATOM 499 O 1 1 31.478 20.769 20.986 0.00 0.00 0
|
||||
ATOM 500 H 1 1 30.440 22.509 21.135 0.00 0.00 0
|
||||
ATOM 501 H 1 1 30.567 19.656 20.043 0.00 0.00 0
|
||||
ATOM 502 O 1 1 24.812 20.412 32.668 0.00 0.00 0
|
||||
ATOM 503 H 1 1 26.242 21.478 31.874 0.00 0.00 0
|
||||
ATOM 504 H 1 1 25.787 19.023 33.158 0.00 0.00 0
|
||||
ATOM 505 O 1 1 22.105 29.076 0.928 0.00 0.00 0
|
||||
ATOM 506 H 1 1 23.296 27.923 1.739 0.00 0.00 0
|
||||
ATOM 507 H 1 1 22.623 30.994 0.882 0.00 0.00 0
|
||||
ATOM 508 O 1 1 29.572 31.256 8.626 0.00 0.00 0
|
||||
ATOM 509 H 1 1 30.795 30.203 7.736 0.00 0.00 0
|
||||
ATOM 510 H 1 1 28.277 31.519 7.260 0.00 0.00 0
|
||||
ATOM 511 O 1 1 31.817 34.843 18.283 0.00 0.00 0
|
||||
ATOM 512 H 1 1 32.438 34.389 16.474 0.00 0.00 0
|
||||
ATOM 513 H 1 1 32.743 36.422 18.341 0.00 0.00 0
|
||||
ATOM 514 O 1 1 27.915 25.601 19.033 0.00 0.00 0
|
||||
ATOM 515 H 1 1 29.358 26.561 19.190 0.00 0.00 0
|
||||
ATOM 516 H 1 1 28.148 24.429 17.530 0.00 0.00 0
|
||||
ATOM 517 O 1 1 24.548 24.654 24.025 0.00 0.00 0
|
||||
ATOM 518 H 1 1 25.528 25.635 22.824 0.00 0.00 0
|
||||
ATOM 519 H 1 1 25.300 25.200 25.645 0.00 0.00 0
|
||||
ATOM 520 O 1 1 28.540 22.922 30.370 0.00 0.00 0
|
||||
ATOM 521 H 1 1 27.414 24.096 29.781 0.00 0.00 0
|
||||
ATOM 522 H 1 1 29.674 23.914 31.873 0.00 0.00 0
|
||||
ATOM 523 O 1 1 24.969 33.623 1.014 0.00 0.00 0
|
||||
ATOM 524 H 1 1 26.521 33.058 1.518 0.00 0.00 0
|
||||
ATOM 525 H 1 1 24.990 34.322 -0.683 0.00 0.00 0
|
||||
ATOM 526 O 1 1 23.075 32.171 11.324 0.00 0.00 0
|
||||
ATOM 527 H 1 1 23.316 32.775 13.097 0.00 0.00 0
|
||||
ATOM 528 H 1 1 24.460 33.203 10.662 0.00 0.00 0
|
||||
ATOM 529 O 1 1 27.497 2.736 17.224 0.00 0.00 0
|
||||
ATOM 530 H 1 1 28.397 3.415 15.715 0.00 0.00 0
|
||||
ATOM 531 H 1 1 28.234 1.233 17.412 0.00 0.00 0
|
||||
ATOM 532 O 1 1 26.369 33.060 22.077 0.00 0.00 0
|
||||
ATOM 533 H 1 1 26.170 34.746 22.264 0.00 0.00 0
|
||||
ATOM 534 H 1 1 27.592 32.404 23.321 0.00 0.00 0
|
||||
ATOM 535 O 1 1 30.221 30.950 25.843 0.00 0.00 0
|
||||
ATOM 536 H 1 1 30.305 29.038 26.208 0.00 0.00 0
|
||||
ATOM 537 H 1 1 30.363 31.979 27.414 0.00 0.00 0
|
||||
ATOM 538 O 1 1 24.973 26.732 28.607 0.00 0.00 0
|
||||
ATOM 539 H 1 1 25.385 28.369 29.248 0.00 0.00 0
|
||||
ATOM 540 H 1 1 23.330 26.597 29.234 0.00 0.00 0
|
||||
ATOM 541 O 1 1 32.165 4.857 2.258 0.00 0.00 0
|
||||
ATOM 542 H 1 1 32.417 6.195 1.157 0.00 0.00 0
|
||||
ATOM 543 H 1 1 32.615 3.727 1.112 0.00 0.00 0
|
||||
ATOM 544 O 1 1 28.067 3.533 5.217 0.00 0.00 0
|
||||
ATOM 545 H 1 1 26.960 4.447 4.158 0.00 0.00 0
|
||||
ATOM 546 H 1 1 29.875 3.863 4.448 0.00 0.00 0
|
||||
ATOM 547 O 1 1 33.279 2.782 13.028 0.00 0.00 0
|
||||
ATOM 548 H 1 1 33.708 3.955 11.817 0.00 0.00 0
|
||||
ATOM 549 H 1 1 33.656 3.545 14.631 0.00 0.00 0
|
||||
ATOM 550 O 1 1 34.278 4.944 17.492 0.00 0.00 0
|
||||
ATOM 551 H 1 1 33.438 6.563 17.876 0.00 0.00 0
|
||||
ATOM 552 H 1 1 34.906 4.452 18.995 0.00 0.00 0
|
||||
ATOM 553 O 1 1 32.363 1.908 26.092 0.00 0.00 0
|
||||
ATOM 554 H 1 1 31.941 1.683 24.268 0.00 0.00 0
|
||||
ATOM 555 H 1 1 33.850 1.390 26.904 0.00 0.00 0
|
||||
ATOM 556 O 1 1 27.982 0.418 28.241 0.00 0.00 0
|
||||
ATOM 557 H 1 1 27.516 2.080 28.309 0.00 0.00 0
|
||||
ATOM 558 H 1 1 29.593 0.176 27.299 0.00 0.00 0
|
||||
ATOM 559 O 1 1 28.845 14.672 2.724 0.00 0.00 0
|
||||
ATOM 560 H 1 1 27.963 13.930 4.139 0.00 0.00 0
|
||||
ATOM 561 H 1 1 30.386 15.714 3.379 0.00 0.00 0
|
||||
ATOM 562 O 1 1 28.083 10.618 14.298 0.00 0.00 0
|
||||
ATOM 563 H 1 1 28.623 12.160 13.293 0.00 0.00 0
|
||||
ATOM 564 H 1 1 26.486 11.015 15.379 0.00 0.00 0
|
||||
ATOM 565 O 1 1 33.867 10.545 13.306 0.00 0.00 0
|
||||
ATOM 566 H 1 1 35.165 9.612 13.810 0.00 0.00 0
|
||||
ATOM 567 H 1 1 33.615 10.270 11.513 0.00 0.00 0
|
||||
ATOM 568 O 1 1 31.790 9.696 18.223 0.00 0.00 0
|
||||
ATOM 569 H 1 1 30.484 9.334 19.421 0.00 0.00 0
|
||||
ATOM 570 H 1 1 30.834 10.096 16.929 0.00 0.00 0
|
||||
ATOM 571 O 1 1 30.141 15.006 21.532 0.00 0.00 0
|
||||
ATOM 572 H 1 1 28.565 15.594 22.099 0.00 0.00 0
|
||||
ATOM 573 H 1 1 30.942 14.253 23.077 0.00 0.00 0
|
||||
ATOM 574 O 1 1 32.798 10.732 30.680 0.00 0.00 0
|
||||
ATOM 575 H 1 1 34.073 9.528 30.799 0.00 0.00 0
|
||||
ATOM 576 H 1 1 32.991 11.512 28.983 0.00 0.00 0
|
||||
ATOM 577 O 1 1 33.652 16.265 5.086 0.00 0.00 0
|
||||
ATOM 578 H 1 1 35.399 16.239 4.730 0.00 0.00 0
|
||||
ATOM 579 H 1 1 33.503 17.939 5.631 0.00 0.00 0
|
||||
ATOM 580 O 1 1 31.947 10.799 7.943 0.00 0.00 0
|
||||
ATOM 581 H 1 1 29.894 10.549 7.619 0.00 0.00 0
|
||||
ATOM 582 H 1 1 32.271 12.414 7.075 0.00 0.00 0
|
||||
ATOM 583 O 1 1 0.329 15.516 11.746 0.00 0.00 0
|
||||
ATOM 584 H 1 1 -0.446 14.249 12.939 0.00 0.00 0
|
||||
ATOM 585 H 1 1 -0.685 17.018 11.935 0.00 0.00 0
|
||||
ATOM 586 O 1 1 4.262 19.165 14.308 0.00 0.00 0
|
||||
ATOM 587 H 1 1 3.579 17.691 14.920 0.00 0.00 0
|
||||
ATOM 588 H 1 1 5.723 19.183 15.204 0.00 0.00 0
|
||||
ATOM 589 O 1 1 32.995 13.546 25.948 0.00 0.00 0
|
||||
ATOM 590 H 1 1 32.167 15.060 26.787 0.00 0.00 0
|
||||
ATOM 591 H 1 1 34.425 13.800 25.007 0.00 0.00 0
|
||||
ATOM 592 O 1 1 1.773 13.524 34.037 0.00 0.00 0
|
||||
ATOM 593 H 1 1 0.227 14.409 33.446 0.00 0.00 0
|
||||
ATOM 594 H 1 1 2.167 14.670 35.511 0.00 0.00 0
|
||||
ATOM 595 O 1 1 33.029 20.529 7.247 0.00 0.00 0
|
||||
ATOM 596 H 1 1 34.388 21.414 8.003 0.00 0.00 0
|
||||
ATOM 597 H 1 1 31.451 20.831 8.182 0.00 0.00 0
|
||||
ATOM 598 O 1 1 2.037 24.250 10.251 0.00 0.00 0
|
||||
ATOM 599 H 1 1 3.743 25.008 9.876 0.00 0.00 0
|
||||
ATOM 600 H 1 1 1.894 25.043 11.903 0.00 0.00 0
|
||||
ATOM 601 O 1 1 32.753 19.259 13.976 0.00 0.00 0
|
||||
ATOM 602 H 1 1 32.792 20.886 13.792 0.00 0.00 0
|
||||
ATOM 603 H 1 1 34.334 18.799 14.976 0.00 0.00 0
|
||||
ATOM 604 O 1 1 0.396 18.673 18.699 0.00 0.00 0
|
||||
ATOM 605 H 1 1 -1.211 18.950 19.127 0.00 0.00 0
|
||||
ATOM 606 H 1 1 0.469 16.977 18.436 0.00 0.00 0
|
||||
ATOM 607 O 1 1 30.855 18.370 27.959 0.00 0.00 0
|
||||
ATOM 608 H 1 1 29.759 19.681 28.690 0.00 0.00 0
|
||||
ATOM 609 H 1 1 32.103 19.477 26.763 0.00 0.00 0
|
||||
ATOM 610 O 1 1 27.723 15.992 33.091 0.00 0.00 0
|
||||
ATOM 611 H 1 1 29.390 16.423 32.192 0.00 0.00 0
|
||||
ATOM 612 H 1 1 27.801 15.859 34.804 0.00 0.00 0
|
||||
ATOM 613 O 1 1 31.068 27.895 3.348 0.00 0.00 0
|
||||
ATOM 614 H 1 1 32.517 27.825 4.610 0.00 0.00 0
|
||||
ATOM 615 H 1 1 31.529 29.459 2.324 0.00 0.00 0
|
||||
ATOM 616 O 1 1 35.039 28.008 6.663 0.00 0.00 0
|
||||
ATOM 617 H 1 1 35.966 26.934 7.683 0.00 0.00 0
|
||||
ATOM 618 H 1 1 36.055 28.336 5.336 0.00 0.00 0
|
||||
ATOM 619 O 1 1 29.356 28.196 13.025 0.00 0.00 0
|
||||
ATOM 620 H 1 1 29.210 29.335 14.589 0.00 0.00 0
|
||||
ATOM 621 H 1 1 28.874 29.629 11.867 0.00 0.00 0
|
||||
ATOM 622 O 1 1 32.386 28.434 18.961 0.00 0.00 0
|
||||
ATOM 623 H 1 1 33.368 28.574 20.411 0.00 0.00 0
|
||||
ATOM 624 H 1 1 33.410 27.406 17.949 0.00 0.00 0
|
||||
ATOM 625 O 1 1 30.898 25.390 25.799 0.00 0.00 0
|
||||
ATOM 626 H 1 1 32.369 25.913 24.580 0.00 0.00 0
|
||||
ATOM 627 H 1 1 31.317 24.075 27.029 0.00 0.00 0
|
||||
ATOM 628 O 1 1 32.259 25.611 33.104 0.00 0.00 0
|
||||
ATOM 629 H 1 1 32.238 25.736 34.806 0.00 0.00 0
|
||||
ATOM 630 H 1 1 33.920 25.042 32.775 0.00 0.00 0
|
||||
ATOM 631 O 1 1 30.290 32.645 1.341 0.00 0.00 0
|
||||
ATOM 632 H 1 1 29.949 32.793 -0.430 0.00 0.00 0
|
||||
ATOM 633 H 1 1 31.762 33.340 1.847 0.00 0.00 0
|
||||
ATOM 634 O 1 1 25.536 34.235 6.469 0.00 0.00 0
|
||||
ATOM 635 H 1 1 25.716 36.059 6.651 0.00 0.00 0
|
||||
ATOM 636 H 1 1 25.283 33.866 4.895 0.00 0.00 0
|
||||
ATOM 637 O 1 1 31.674 33.161 13.106 0.00 0.00 0
|
||||
ATOM 638 H 1 1 31.793 34.863 13.281 0.00 0.00 0
|
||||
ATOM 639 H 1 1 30.425 32.928 11.783 0.00 0.00 0
|
||||
ATOM 640 O 1 1 33.844 32.668 22.296 0.00 0.00 0
|
||||
ATOM 641 H 1 1 32.750 32.234 23.524 0.00 0.00 0
|
||||
ATOM 642 H 1 1 32.917 32.875 20.736 0.00 0.00 0
|
||||
ATOM 643 O 1 1 31.603 30.542 30.805 0.00 0.00 0
|
||||
ATOM 644 H 1 1 33.451 30.804 30.468 0.00 0.00 0
|
||||
ATOM 645 H 1 1 31.575 28.816 31.756 0.00 0.00 0
|
||||
ATOM 646 O 1 1 26.295 31.235 30.599 0.00 0.00 0
|
||||
ATOM 647 H 1 1 27.834 30.515 30.607 0.00 0.00 0
|
||||
ATOM 648 H 1 1 26.362 32.920 29.856 0.00 0.00 0
|
||||
END
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,33 +0,0 @@
|
||||
units electron
|
||||
atom_style full
|
||||
|
||||
#pair_style lj/cut/coul/long 17.01
|
||||
pair_style lj/cut/tip4p/long 1 2 1 1 0.278072379 17.007
|
||||
bond_style harmonic
|
||||
#bond_style class2
|
||||
angle_style harmonic
|
||||
#kspace_style pppm 0.0001
|
||||
kspace_style pppm/tip4p 0.0001
|
||||
|
||||
read_data data.water_longrange
|
||||
pair_coeff * * 0 0
|
||||
pair_coeff 1 1 0.000295147 5.96946
|
||||
|
||||
neighbor 2.0 bin
|
||||
neigh_modify delay 0 every 1 check yes
|
||||
|
||||
timestep 0.00025
|
||||
|
||||
#velocity all create 298.0 2345187
|
||||
|
||||
#thermo_style multi
|
||||
#thermo 1
|
||||
|
||||
#fix 1 all nvt temp 298.0 298.0 30.0 tchain 1
|
||||
#fix 1 all nve
|
||||
fix 1 all ipi rpc_long 32347 unix
|
||||
|
||||
#dump 1 all xyz 25 dump.xyz
|
||||
|
||||
run 100000000
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
units electron
|
||||
atom_style full
|
||||
|
||||
pair_style lj/cut 0.51
|
||||
#pair_style lj/cut/tip4p/long 1 2 1 1 0.278072379 17.007
|
||||
#bond_style harmonic
|
||||
bond_style class2
|
||||
angle_style harmonic
|
||||
#kspace_style pppm 0.0001
|
||||
#kspace_style pppm/tip4p 0.0001
|
||||
|
||||
read_data data.water_shortrange
|
||||
pair_coeff * * 0 0.1
|
||||
#pair_coeff 1 1 0.000295147 5.96946
|
||||
|
||||
#atom_modify sort 1 3.00
|
||||
neighbor 2.0 bin
|
||||
neigh_modify delay 0 every 1 check yes
|
||||
|
||||
timestep 0.00025
|
||||
|
||||
#velocity all create 298.0 2345187
|
||||
|
||||
#thermo_style multi
|
||||
#thermo 1
|
||||
|
||||
#fix 1 all nvt temp 298.0 298.0 30.0 tchain 1
|
||||
#fix 1 all nve
|
||||
fix 1 all ipi rpc_short 32346 unix
|
||||
|
||||
#dump 1 all xyz 25 dump.xyz
|
||||
|
||||
run 100000000
|
||||
|
||||
@ -1,27 +0,0 @@
|
||||
<simulation>
|
||||
<initialize nbeads='32'>
|
||||
<file mode='pdb'> water_298K.pdb </file>
|
||||
<velocities mode="thermal" units='kelvin'> 298 </velocities>
|
||||
</initialize>
|
||||
<output prefix='rpc'>
|
||||
<properties stride='1' filename='out'> [ step, time{picosecond}, conserved, temperature{kelvin}, kinetic_cv, potential, pressure_cv{megapascal}] </properties>
|
||||
<trajectory filename='pos' stride='20'> positions </trajectory>
|
||||
</output>
|
||||
<total_steps>500000</total_steps>
|
||||
<prng><seed>32346</seed></prng>
|
||||
<forces>
|
||||
<socket mode='unix'>
|
||||
<address>rpc_short</address>
|
||||
</socket>
|
||||
<socket mode='unix' nbeads='5'>
|
||||
<address> rpc_long </address>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='svr'>
|
||||
<tau units='femtosecond'>25</tau>
|
||||
</thermostat>
|
||||
<timestep units='femtosecond'> 0.25</timestep>
|
||||
<temperature units='kelvin'>298</temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,650 +0,0 @@
|
||||
CRYST 35.233 35.233 35.233 90.00 90.00 90.00 P 1 1
|
||||
ATOM 1 O 1 1 3.846 5.672 1.323 0.00 0.00 0
|
||||
ATOM 2 H 1 1 2.979 7.054 0.857 0.00 0.00 0
|
||||
ATOM 3 H 1 1 5.525 5.697 0.451 0.00 0.00 0
|
||||
ATOM 4 O 1 1 34.557 34.341 3.078 0.00 0.00 0
|
||||
ATOM 5 H 1 1 33.722 34.689 4.840 0.00 0.00 0
|
||||
ATOM 6 H 1 1 36.029 33.220 3.711 0.00 0.00 0
|
||||
ATOM 7 O 1 1 5.591 1.963 13.477 0.00 0.00 0
|
||||
ATOM 8 H 1 1 7.265 1.864 13.851 0.00 0.00 0
|
||||
ATOM 9 H 1 1 5.009 3.555 13.916 0.00 0.00 0
|
||||
ATOM 10 O 1 1 1.060 2.061 21.718 0.00 0.00 0
|
||||
ATOM 11 H 1 1 0.757 0.261 21.820 0.00 0.00 0
|
||||
ATOM 12 H 1 1 0.213 3.013 23.047 0.00 0.00 0
|
||||
ATOM 13 O 1 1 1.200 1.337 29.006 0.00 0.00 0
|
||||
ATOM 14 H 1 1 0.818 1.884 30.732 0.00 0.00 0
|
||||
ATOM 15 H 1 1 2.883 1.825 29.011 0.00 0.00 0
|
||||
ATOM 16 O 1 1 1.331 1.386 34.306 0.00 0.00 0
|
||||
ATOM 17 H 1 1 2.392 2.898 34.846 0.00 0.00 0
|
||||
ATOM 18 H 1 1 0.814 0.532 35.836 0.00 0.00 0
|
||||
ATOM 19 O 1 1 31.451 10.201 0.726 0.00 0.00 0
|
||||
ATOM 20 H 1 1 32.282 10.877 -0.750 0.00 0.00 0
|
||||
ATOM 21 H 1 1 30.920 11.594 1.677 0.00 0.00 0
|
||||
ATOM 22 O 1 1 0.836 10.808 4.298 0.00 0.00 0
|
||||
ATOM 23 H 1 1 0.305 10.643 2.793 0.00 0.00 0
|
||||
ATOM 24 H 1 1 -0.356 10.334 5.524 0.00 0.00 0
|
||||
ATOM 25 O 1 1 34.381 5.979 9.194 0.00 0.00 0
|
||||
ATOM 26 H 1 1 33.616 7.673 8.857 0.00 0.00 0
|
||||
ATOM 27 H 1 1 35.115 5.260 7.618 0.00 0.00 0
|
||||
ATOM 28 O 1 1 33.212 6.480 24.278 0.00 0.00 0
|
||||
ATOM 29 H 1 1 31.624 6.908 23.521 0.00 0.00 0
|
||||
ATOM 30 H 1 1 32.544 4.990 24.982 0.00 0.00 0
|
||||
ATOM 31 O 1 1 1.992 9.002 26.863 0.00 0.00 0
|
||||
ATOM 32 H 1 1 1.856 10.175 25.579 0.00 0.00 0
|
||||
ATOM 33 H 1 1 0.519 8.099 26.386 0.00 0.00 0
|
||||
ATOM 34 O 1 1 2.054 8.660 32.515 0.00 0.00 0
|
||||
ATOM 35 H 1 1 2.167 8.727 30.494 0.00 0.00 0
|
||||
ATOM 36 H 1 1 2.374 10.513 33.038 0.00 0.00 0
|
||||
ATOM 37 O 1 1 3.402 16.639 3.008 0.00 0.00 0
|
||||
ATOM 38 H 1 1 4.127 15.872 4.446 0.00 0.00 0
|
||||
ATOM 39 H 1 1 2.905 18.339 3.160 0.00 0.00 0
|
||||
ATOM 40 O 1 1 4.222 15.444 8.072 0.00 0.00 0
|
||||
ATOM 41 H 1 1 5.211 16.756 8.299 0.00 0.00 0
|
||||
ATOM 42 H 1 1 2.560 15.492 8.860 0.00 0.00 0
|
||||
ATOM 43 O 1 1 2.831 9.246 16.488 0.00 0.00 0
|
||||
ATOM 44 H 1 1 2.869 8.023 18.050 0.00 0.00 0
|
||||
ATOM 45 H 1 1 3.960 8.467 15.154 0.00 0.00 0
|
||||
ATOM 46 O 1 1 5.563 6.003 20.907 0.00 0.00 0
|
||||
ATOM 47 H 1 1 4.653 4.638 21.480 0.00 0.00 0
|
||||
ATOM 48 H 1 1 6.405 6.208 22.529 0.00 0.00 0
|
||||
ATOM 49 O 1 1 2.087 13.370 22.913 0.00 0.00 0
|
||||
ATOM 50 H 1 1 2.832 14.804 23.422 0.00 0.00 0
|
||||
ATOM 51 H 1 1 1.434 13.509 21.196 0.00 0.00 0
|
||||
ATOM 52 O 1 1 3.369 17.886 25.109 0.00 0.00 0
|
||||
ATOM 53 H 1 1 3.655 17.200 26.766 0.00 0.00 0
|
||||
ATOM 54 H 1 1 4.772 18.977 24.500 0.00 0.00 0
|
||||
ATOM 55 O 1 1 34.764 20.803 0.948 0.00 0.00 0
|
||||
ATOM 56 H 1 1 35.210 21.267 2.816 0.00 0.00 0
|
||||
ATOM 57 H 1 1 35.962 21.726 0.131 0.00 0.00 0
|
||||
ATOM 58 O 1 1 2.836 24.178 15.229 0.00 0.00 0
|
||||
ATOM 59 H 1 1 2.795 22.346 14.876 0.00 0.00 0
|
||||
ATOM 60 H 1 1 2.414 24.115 17.130 0.00 0.00 0
|
||||
ATOM 61 O 1 1 33.000 24.481 15.230 0.00 0.00 0
|
||||
ATOM 62 H 1 1 34.640 24.804 15.013 0.00 0.00 0
|
||||
ATOM 63 H 1 1 32.401 25.764 14.295 0.00 0.00 0
|
||||
ATOM 64 O 1 1 0.404 26.779 23.400 0.00 0.00 0
|
||||
ATOM 65 H 1 1 1.353 27.248 24.987 0.00 0.00 0
|
||||
ATOM 66 H 1 1 1.546 28.050 22.317 0.00 0.00 0
|
||||
ATOM 67 O 1 1 34.222 21.380 25.418 0.00 0.00 0
|
||||
ATOM 68 H 1 1 35.669 20.151 25.317 0.00 0.00 0
|
||||
ATOM 69 H 1 1 32.960 21.180 23.992 0.00 0.00 0
|
||||
ATOM 70 O 1 1 33.259 17.438 32.480 0.00 0.00 0
|
||||
ATOM 71 H 1 1 33.314 18.782 33.883 0.00 0.00 0
|
||||
ATOM 72 H 1 1 32.743 18.181 30.871 0.00 0.00 0
|
||||
ATOM 73 O 1 1 4.463 21.979 3.936 0.00 0.00 0
|
||||
ATOM 74 H 1 1 5.856 23.084 3.400 0.00 0.00 0
|
||||
ATOM 75 H 1 1 3.986 22.180 5.602 0.00 0.00 0
|
||||
ATOM 76 O 1 1 6.258 25.851 8.520 0.00 0.00 0
|
||||
ATOM 77 H 1 1 5.767 27.693 8.476 0.00 0.00 0
|
||||
ATOM 78 H 1 1 7.202 25.506 10.186 0.00 0.00 0
|
||||
ATOM 79 O 1 1 0.601 29.737 12.747 0.00 0.00 0
|
||||
ATOM 80 H 1 1 -0.685 30.842 12.350 0.00 0.00 0
|
||||
ATOM 81 H 1 1 1.336 30.716 14.031 0.00 0.00 0
|
||||
ATOM 82 O 1 1 7.563 28.191 24.333 0.00 0.00 0
|
||||
ATOM 83 H 1 1 9.201 28.828 24.684 0.00 0.00 0
|
||||
ATOM 84 H 1 1 7.381 27.621 22.799 0.00 0.00 0
|
||||
ATOM 85 O 1 1 3.653 27.109 27.772 0.00 0.00 0
|
||||
ATOM 86 H 1 1 5.126 27.015 26.772 0.00 0.00 0
|
||||
ATOM 87 H 1 1 3.031 28.756 27.698 0.00 0.00 0
|
||||
ATOM 88 O 1 1 2.596 23.991 32.476 0.00 0.00 0
|
||||
ATOM 89 H 1 1 2.879 24.791 30.859 0.00 0.00 0
|
||||
ATOM 90 H 1 1 4.003 22.913 32.701 0.00 0.00 0
|
||||
ATOM 91 O 1 1 3.083 31.317 3.644 0.00 0.00 0
|
||||
ATOM 92 H 1 1 4.133 30.589 2.539 0.00 0.00 0
|
||||
ATOM 93 H 1 1 4.218 32.173 5.037 0.00 0.00 0
|
||||
ATOM 94 O 1 1 4.661 30.555 9.368 0.00 0.00 0
|
||||
ATOM 95 H 1 1 3.184 29.843 10.132 0.00 0.00 0
|
||||
ATOM 96 H 1 1 4.358 32.448 9.126 0.00 0.00 0
|
||||
ATOM 97 O 1 1 3.465 32.537 15.778 0.00 0.00 0
|
||||
ATOM 98 H 1 1 5.072 31.819 15.903 0.00 0.00 0
|
||||
ATOM 99 H 1 1 4.055 34.257 15.284 0.00 0.00 0
|
||||
ATOM 100 O 1 1 4.215 29.153 20.317 0.00 0.00 0
|
||||
ATOM 101 H 1 1 3.658 30.176 18.842 0.00 0.00 0
|
||||
ATOM 102 H 1 1 4.959 30.291 21.449 0.00 0.00 0
|
||||
ATOM 103 O 1 1 1.126 31.333 28.768 0.00 0.00 0
|
||||
ATOM 104 H 1 1 2.395 31.124 29.925 0.00 0.00 0
|
||||
ATOM 105 H 1 1 0.768 33.092 28.898 0.00 0.00 0
|
||||
ATOM 106 O 1 1 4.881 32.616 32.302 0.00 0.00 0
|
||||
ATOM 107 H 1 1 6.588 32.911 31.725 0.00 0.00 0
|
||||
ATOM 108 H 1 1 4.486 34.037 33.249 0.00 0.00 0
|
||||
ATOM 109 O 1 1 8.962 5.556 0.151 0.00 0.00 0
|
||||
ATOM 110 H 1 1 9.652 6.991 0.859 0.00 0.00 0
|
||||
ATOM 111 H 1 1 9.173 4.477 1.645 0.00 0.00 0
|
||||
ATOM 112 O 1 1 1.833 3.518 5.679 0.00 0.00 0
|
||||
ATOM 113 H 1 1 2.889 2.731 6.788 0.00 0.00 0
|
||||
ATOM 114 H 1 1 2.789 4.187 4.147 0.00 0.00 0
|
||||
ATOM 115 O 1 1 10.510 34.726 13.073 0.00 0.00 0
|
||||
ATOM 116 H 1 1 11.920 34.118 11.919 0.00 0.00 0
|
||||
ATOM 117 H 1 1 11.295 34.968 14.741 0.00 0.00 0
|
||||
ATOM 118 O 1 1 7.212 0.042 22.454 0.00 0.00 0
|
||||
ATOM 119 H 1 1 6.924 0.470 24.172 0.00 0.00 0
|
||||
ATOM 120 H 1 1 8.319 1.228 21.653 0.00 0.00 0
|
||||
ATOM 121 O 1 1 6.365 2.010 27.544 0.00 0.00 0
|
||||
ATOM 122 H 1 1 5.954 3.585 26.852 0.00 0.00 0
|
||||
ATOM 123 H 1 1 7.758 2.549 28.696 0.00 0.00 0
|
||||
ATOM 124 O 1 1 10.833 3.140 30.787 0.00 0.00 0
|
||||
ATOM 125 H 1 1 12.697 2.975 30.867 0.00 0.00 0
|
||||
ATOM 126 H 1 1 10.389 3.700 32.404 0.00 0.00 0
|
||||
ATOM 127 O 1 1 8.684 9.342 3.912 0.00 0.00 0
|
||||
ATOM 128 H 1 1 6.985 9.256 4.773 0.00 0.00 0
|
||||
ATOM 129 H 1 1 8.684 10.809 3.011 0.00 0.00 0
|
||||
ATOM 130 O 1 1 4.873 9.919 7.707 0.00 0.00 0
|
||||
ATOM 131 H 1 1 3.698 9.771 6.194 0.00 0.00 0
|
||||
ATOM 132 H 1 1 5.047 11.961 7.624 0.00 0.00 0
|
||||
ATOM 133 O 1 1 10.031 5.018 9.699 0.00 0.00 0
|
||||
ATOM 134 H 1 1 9.675 3.382 10.340 0.00 0.00 0
|
||||
ATOM 135 H 1 1 9.132 5.987 10.825 0.00 0.00 0
|
||||
ATOM 136 O 1 1 11.246 3.918 21.929 0.00 0.00 0
|
||||
ATOM 137 H 1 1 12.614 2.770 22.341 0.00 0.00 0
|
||||
ATOM 138 H 1 1 12.073 5.686 21.497 0.00 0.00 0
|
||||
ATOM 139 O 1 1 6.825 7.164 25.708 0.00 0.00 0
|
||||
ATOM 140 H 1 1 8.036 8.374 25.980 0.00 0.00 0
|
||||
ATOM 141 H 1 1 5.206 7.900 25.891 0.00 0.00 0
|
||||
ATOM 142 O 1 1 10.171 12.811 0.295 0.00 0.00 0
|
||||
ATOM 143 H 1 1 10.033 12.818 -1.609 0.00 0.00 0
|
||||
ATOM 144 H 1 1 9.880 14.492 0.480 0.00 0.00 0
|
||||
ATOM 145 O 1 1 8.190 17.402 1.253 0.00 0.00 0
|
||||
ATOM 146 H 1 1 9.472 18.531 1.253 0.00 0.00 0
|
||||
ATOM 147 H 1 1 6.351 17.817 1.568 0.00 0.00 0
|
||||
ATOM 148 O 1 1 11.233 16.188 8.299 0.00 0.00 0
|
||||
ATOM 149 H 1 1 10.291 17.689 8.166 0.00 0.00 0
|
||||
ATOM 150 H 1 1 12.768 17.123 8.733 0.00 0.00 0
|
||||
ATOM 151 O 1 1 6.386 8.002 12.846 0.00 0.00 0
|
||||
ATOM 152 H 1 1 7.701 8.896 13.655 0.00 0.00 0
|
||||
ATOM 153 H 1 1 5.591 8.877 11.519 0.00 0.00 0
|
||||
ATOM 154 O 1 1 8.184 10.419 18.848 0.00 0.00 0
|
||||
ATOM 155 H 1 1 9.498 9.434 19.905 0.00 0.00 0
|
||||
ATOM 156 H 1 1 6.882 9.027 18.948 0.00 0.00 0
|
||||
ATOM 157 O 1 1 10.806 14.431 21.328 0.00 0.00 0
|
||||
ATOM 158 H 1 1 9.177 13.531 20.670 0.00 0.00 0
|
||||
ATOM 159 H 1 1 11.344 15.696 20.448 0.00 0.00 0
|
||||
ATOM 160 O 1 1 9.237 13.928 30.341 0.00 0.00 0
|
||||
ATOM 161 H 1 1 10.779 14.839 30.522 0.00 0.00 0
|
||||
ATOM 162 H 1 1 9.965 13.192 28.899 0.00 0.00 0
|
||||
ATOM 163 O 1 1 10.918 21.707 1.864 0.00 0.00 0
|
||||
ATOM 164 H 1 1 10.280 23.449 2.279 0.00 0.00 0
|
||||
ATOM 165 H 1 1 12.708 21.456 1.749 0.00 0.00 0
|
||||
ATOM 166 O 1 1 9.353 16.125 13.927 0.00 0.00 0
|
||||
ATOM 167 H 1 1 9.938 17.594 14.618 0.00 0.00 0
|
||||
ATOM 168 H 1 1 9.518 16.360 12.244 0.00 0.00 0
|
||||
ATOM 169 O 1 1 10.371 11.107 14.268 0.00 0.00 0
|
||||
ATOM 170 H 1 1 9.644 10.406 15.859 0.00 0.00 0
|
||||
ATOM 171 H 1 1 9.434 12.523 14.117 0.00 0.00 0
|
||||
ATOM 172 O 1 1 3.351 22.769 20.196 0.00 0.00 0
|
||||
ATOM 173 H 1 1 2.055 23.686 21.503 0.00 0.00 0
|
||||
ATOM 174 H 1 1 2.452 21.401 19.413 0.00 0.00 0
|
||||
ATOM 175 O 1 1 6.836 21.329 23.199 0.00 0.00 0
|
||||
ATOM 176 H 1 1 8.249 20.848 22.320 0.00 0.00 0
|
||||
ATOM 177 H 1 1 5.668 21.841 21.886 0.00 0.00 0
|
||||
ATOM 178 O 1 1 4.604 15.649 30.043 0.00 0.00 0
|
||||
ATOM 179 H 1 1 6.453 15.217 30.207 0.00 0.00 0
|
||||
ATOM 180 H 1 1 3.822 14.762 31.562 0.00 0.00 0
|
||||
ATOM 181 O 1 1 7.125 19.976 9.421 0.00 0.00 0
|
||||
ATOM 182 H 1 1 5.918 20.453 10.730 0.00 0.00 0
|
||||
ATOM 183 H 1 1 8.099 21.496 9.491 0.00 0.00 0
|
||||
ATOM 184 O 1 1 9.063 25.912 13.186 0.00 0.00 0
|
||||
ATOM 185 H 1 1 10.350 26.572 12.367 0.00 0.00 0
|
||||
ATOM 186 H 1 1 9.680 24.367 13.697 0.00 0.00 0
|
||||
ATOM 187 O 1 1 8.022 22.343 17.042 0.00 0.00 0
|
||||
ATOM 188 H 1 1 9.144 23.367 18.074 0.00 0.00 0
|
||||
ATOM 189 H 1 1 6.562 23.462 16.852 0.00 0.00 0
|
||||
ATOM 190 O 1 1 10.762 26.285 19.963 0.00 0.00 0
|
||||
ATOM 191 H 1 1 11.036 27.966 20.538 0.00 0.00 0
|
||||
ATOM 192 H 1 1 11.078 25.401 21.456 0.00 0.00 0
|
||||
ATOM 193 O 1 1 9.158 22.902 28.391 0.00 0.00 0
|
||||
ATOM 194 H 1 1 8.219 23.528 27.085 0.00 0.00 0
|
||||
ATOM 195 H 1 1 8.089 21.760 29.509 0.00 0.00 0
|
||||
ATOM 196 O 1 1 6.219 20.158 31.921 0.00 0.00 0
|
||||
ATOM 197 H 1 1 5.635 18.511 31.161 0.00 0.00 0
|
||||
ATOM 198 H 1 1 7.530 19.624 33.071 0.00 0.00 0
|
||||
ATOM 199 O 1 1 11.191 31.509 2.617 0.00 0.00 0
|
||||
ATOM 200 H 1 1 10.460 32.214 4.108 0.00 0.00 0
|
||||
ATOM 201 H 1 1 13.176 31.751 2.577 0.00 0.00 0
|
||||
ATOM 202 O 1 1 4.748 0.055 8.605 0.00 0.00 0
|
||||
ATOM 203 H 1 1 5.380 0.517 10.183 0.00 0.00 0
|
||||
ATOM 204 H 1 1 6.050 -0.306 7.480 0.00 0.00 0
|
||||
ATOM 205 O 1 1 8.695 30.809 15.731 0.00 0.00 0
|
||||
ATOM 206 H 1 1 9.189 32.103 14.495 0.00 0.00 0
|
||||
ATOM 207 H 1 1 8.447 29.069 14.868 0.00 0.00 0
|
||||
ATOM 208 O 1 1 10.128 31.402 20.766 0.00 0.00 0
|
||||
ATOM 209 H 1 1 9.456 30.905 19.155 0.00 0.00 0
|
||||
ATOM 210 H 1 1 9.020 32.731 21.415 0.00 0.00 0
|
||||
ATOM 211 O 1 1 12.238 30.162 25.837 0.00 0.00 0
|
||||
ATOM 212 H 1 1 11.418 30.908 27.110 0.00 0.00 0
|
||||
ATOM 213 H 1 1 12.396 31.331 24.678 0.00 0.00 0
|
||||
ATOM 214 O 1 1 10.395 32.537 30.624 0.00 0.00 0
|
||||
ATOM 215 H 1 1 11.042 34.339 30.751 0.00 0.00 0
|
||||
ATOM 216 H 1 1 11.378 31.486 31.538 0.00 0.00 0
|
||||
ATOM 217 O 1 1 10.438 3.626 5.087 0.00 0.00 0
|
||||
ATOM 218 H 1 1 12.435 4.082 5.136 0.00 0.00 0
|
||||
ATOM 219 H 1 1 9.822 4.284 6.681 0.00 0.00 0
|
||||
ATOM 220 O 1 1 14.762 3.401 13.776 0.00 0.00 0
|
||||
ATOM 221 H 1 1 16.518 3.824 13.376 0.00 0.00 0
|
||||
ATOM 222 H 1 1 13.752 4.757 12.964 0.00 0.00 0
|
||||
ATOM 223 O 1 1 12.382 1.012 17.643 0.00 0.00 0
|
||||
ATOM 224 H 1 1 13.346 1.997 16.444 0.00 0.00 0
|
||||
ATOM 225 H 1 1 11.931 2.133 18.998 0.00 0.00 0
|
||||
ATOM 226 O 1 1 15.278 1.293 24.559 0.00 0.00 0
|
||||
ATOM 227 H 1 1 16.071 0.946 26.365 0.00 0.00 0
|
||||
ATOM 228 H 1 1 15.794 0.199 23.499 0.00 0.00 0
|
||||
ATOM 229 O 1 1 22.226 31.627 24.712 0.00 0.00 0
|
||||
ATOM 230 H 1 1 23.338 32.595 23.876 0.00 0.00 0
|
||||
ATOM 231 H 1 1 22.161 30.053 24.132 0.00 0.00 0
|
||||
ATOM 232 O 1 1 15.640 1.847 32.717 0.00 0.00 0
|
||||
ATOM 233 H 1 1 17.488 2.473 31.874 0.00 0.00 0
|
||||
ATOM 234 H 1 1 16.403 0.869 34.267 0.00 0.00 0
|
||||
ATOM 235 O 1 1 14.858 10.199 2.754 0.00 0.00 0
|
||||
ATOM 236 H 1 1 13.360 10.712 2.282 0.00 0.00 0
|
||||
ATOM 237 H 1 1 14.560 9.316 4.559 0.00 0.00 0
|
||||
ATOM 238 O 1 1 15.717 8.469 10.739 0.00 0.00 0
|
||||
ATOM 239 H 1 1 17.323 9.581 10.875 0.00 0.00 0
|
||||
ATOM 240 H 1 1 14.574 9.631 10.221 0.00 0.00 0
|
||||
ATOM 241 O 1 1 15.248 10.398 16.525 0.00 0.00 0
|
||||
ATOM 242 H 1 1 16.324 9.181 16.149 0.00 0.00 0
|
||||
ATOM 243 H 1 1 14.172 10.488 15.098 0.00 0.00 0
|
||||
ATOM 244 O 1 1 13.226 8.438 20.801 0.00 0.00 0
|
||||
ATOM 245 H 1 1 14.043 8.996 19.295 0.00 0.00 0
|
||||
ATOM 246 H 1 1 14.661 7.802 22.093 0.00 0.00 0
|
||||
ATOM 247 O 1 1 10.173 10.961 25.875 0.00 0.00 0
|
||||
ATOM 248 H 1 1 11.477 10.223 26.940 0.00 0.00 0
|
||||
ATOM 249 H 1 1 11.269 10.738 24.343 0.00 0.00 0
|
||||
ATOM 250 O 1 1 12.792 7.737 29.173 0.00 0.00 0
|
||||
ATOM 251 H 1 1 12.199 6.038 29.475 0.00 0.00 0
|
||||
ATOM 252 H 1 1 14.427 7.450 29.617 0.00 0.00 0
|
||||
ATOM 253 O 1 1 15.180 19.498 3.578 0.00 0.00 0
|
||||
ATOM 254 H 1 1 14.883 17.596 4.080 0.00 0.00 0
|
||||
ATOM 255 H 1 1 16.754 19.579 2.626 0.00 0.00 0
|
||||
ATOM 256 O 1 1 12.517 11.093 7.701 0.00 0.00 0
|
||||
ATOM 257 H 1 1 12.224 12.778 7.555 0.00 0.00 0
|
||||
ATOM 258 H 1 1 11.150 10.393 7.057 0.00 0.00 0
|
||||
ATOM 259 O 1 1 16.266 16.271 10.758 0.00 0.00 0
|
||||
ATOM 260 H 1 1 16.507 15.795 12.768 0.00 0.00 0
|
||||
ATOM 261 H 1 1 17.725 16.977 10.292 0.00 0.00 0
|
||||
ATOM 262 O 1 1 14.069 18.399 18.897 0.00 0.00 0
|
||||
ATOM 263 H 1 1 15.513 17.523 18.155 0.00 0.00 0
|
||||
ATOM 264 H 1 1 14.958 18.709 20.673 0.00 0.00 0
|
||||
ATOM 265 O 1 1 14.099 15.480 25.510 0.00 0.00 0
|
||||
ATOM 266 H 1 1 13.698 16.872 26.938 0.00 0.00 0
|
||||
ATOM 267 H 1 1 12.567 15.379 24.444 0.00 0.00 0
|
||||
ATOM 268 O 1 1 13.309 17.574 30.292 0.00 0.00 0
|
||||
ATOM 269 H 1 1 14.937 16.934 30.810 0.00 0.00 0
|
||||
ATOM 270 H 1 1 13.969 19.494 30.012 0.00 0.00 0
|
||||
ATOM 271 O 1 1 18.371 23.257 0.925 0.00 0.00 0
|
||||
ATOM 272 H 1 1 19.479 23.480 2.321 0.00 0.00 0
|
||||
ATOM 273 H 1 1 19.087 24.325 -0.369 0.00 0.00 0
|
||||
ATOM 274 O 1 1 12.100 21.730 11.355 0.00 0.00 0
|
||||
ATOM 275 H 1 1 13.141 22.287 12.743 0.00 0.00 0
|
||||
ATOM 276 H 1 1 13.467 22.236 10.244 0.00 0.00 0
|
||||
ATOM 277 O 1 1 12.163 23.290 23.597 0.00 0.00 0
|
||||
ATOM 278 H 1 1 11.324 22.736 24.949 0.00 0.00 0
|
||||
ATOM 279 H 1 1 13.882 22.872 23.840 0.00 0.00 0
|
||||
ATOM 280 O 1 1 20.173 26.761 22.628 0.00 0.00 0
|
||||
ATOM 281 H 1 1 20.206 26.532 20.792 0.00 0.00 0
|
||||
ATOM 282 H 1 1 21.556 25.742 23.389 0.00 0.00 0
|
||||
ATOM 283 O 1 1 16.701 21.165 22.605 0.00 0.00 0
|
||||
ATOM 284 H 1 1 18.028 20.686 23.848 0.00 0.00 0
|
||||
ATOM 285 H 1 1 17.104 22.866 21.949 0.00 0.00 0
|
||||
ATOM 286 O 1 1 11.391 26.461 33.705 0.00 0.00 0
|
||||
ATOM 287 H 1 1 9.841 27.192 34.048 0.00 0.00 0
|
||||
ATOM 288 H 1 1 11.776 25.540 35.243 0.00 0.00 0
|
||||
ATOM 289 O 1 1 9.898 25.989 4.553 0.00 0.00 0
|
||||
ATOM 290 H 1 1 8.902 26.131 6.039 0.00 0.00 0
|
||||
ATOM 291 H 1 1 10.287 27.806 4.376 0.00 0.00 0
|
||||
ATOM 292 O 1 1 14.308 26.960 10.877 0.00 0.00 0
|
||||
ATOM 293 H 1 1 15.302 27.405 12.173 0.00 0.00 0
|
||||
ATOM 294 H 1 1 15.463 26.151 9.633 0.00 0.00 0
|
||||
ATOM 295 O 1 1 13.433 22.960 16.904 0.00 0.00 0
|
||||
ATOM 296 H 1 1 13.409 24.131 18.132 0.00 0.00 0
|
||||
ATOM 297 H 1 1 13.624 21.191 17.520 0.00 0.00 0
|
||||
ATOM 298 O 1 1 16.409 26.768 26.875 0.00 0.00 0
|
||||
ATOM 299 H 1 1 17.590 26.987 25.431 0.00 0.00 0
|
||||
ATOM 300 H 1 1 14.751 27.703 26.230 0.00 0.00 0
|
||||
ATOM 301 O 1 1 14.405 22.733 29.892 0.00 0.00 0
|
||||
ATOM 302 H 1 1 15.423 23.079 28.494 0.00 0.00 0
|
||||
ATOM 303 H 1 1 12.826 23.259 29.416 0.00 0.00 0
|
||||
ATOM 304 O 1 1 6.905 29.408 0.749 0.00 0.00 0
|
||||
ATOM 305 H 1 1 8.428 30.483 1.567 0.00 0.00 0
|
||||
ATOM 306 H 1 1 6.353 30.814 -0.444 0.00 0.00 0
|
||||
ATOM 307 O 1 1 9.189 34.159 6.509 0.00 0.00 0
|
||||
ATOM 308 H 1 1 10.198 34.193 8.002 0.00 0.00 0
|
||||
ATOM 309 H 1 1 9.890 35.692 5.785 0.00 0.00 0
|
||||
ATOM 310 O 1 1 14.256 32.316 9.369 0.00 0.00 0
|
||||
ATOM 311 H 1 1 15.733 32.867 9.486 0.00 0.00 0
|
||||
ATOM 312 H 1 1 14.754 30.670 10.090 0.00 0.00 0
|
||||
ATOM 313 O 1 1 14.714 30.841 16.516 0.00 0.00 0
|
||||
ATOM 314 H 1 1 13.748 29.551 17.279 0.00 0.00 0
|
||||
ATOM 315 H 1 1 13.218 31.933 16.614 0.00 0.00 0
|
||||
ATOM 316 O 1 1 18.409 33.641 20.611 0.00 0.00 0
|
||||
ATOM 317 H 1 1 19.601 32.274 21.115 0.00 0.00 0
|
||||
ATOM 318 H 1 1 17.360 32.655 19.518 0.00 0.00 0
|
||||
ATOM 319 O 1 1 16.062 28.638 32.207 0.00 0.00 0
|
||||
ATOM 320 H 1 1 14.648 27.958 33.253 0.00 0.00 0
|
||||
ATOM 321 H 1 1 15.752 28.014 30.522 0.00 0.00 0
|
||||
ATOM 322 O 1 1 16.200 30.895 1.473 0.00 0.00 0
|
||||
ATOM 323 H 1 1 16.626 29.968 -0.130 0.00 0.00 0
|
||||
ATOM 324 H 1 1 17.167 29.833 2.927 0.00 0.00 0
|
||||
ATOM 325 O 1 1 20.278 3.529 6.048 0.00 0.00 0
|
||||
ATOM 326 H 1 1 20.977 3.611 4.575 0.00 0.00 0
|
||||
ATOM 327 H 1 1 21.312 4.513 7.251 0.00 0.00 0
|
||||
ATOM 328 O 1 1 23.079 5.778 10.408 0.00 0.00 0
|
||||
ATOM 329 H 1 1 24.650 6.259 10.838 0.00 0.00 0
|
||||
ATOM 330 H 1 1 22.342 7.609 10.178 0.00 0.00 0
|
||||
ATOM 331 O 1 1 19.581 2.031 12.110 0.00 0.00 0
|
||||
ATOM 332 H 1 1 19.039 1.082 10.440 0.00 0.00 0
|
||||
ATOM 333 H 1 1 21.141 2.991 11.851 0.00 0.00 0
|
||||
ATOM 334 O 1 1 22.005 3.223 23.178 0.00 0.00 0
|
||||
ATOM 335 H 1 1 21.429 4.090 24.554 0.00 0.00 0
|
||||
ATOM 336 H 1 1 20.654 1.791 22.711 0.00 0.00 0
|
||||
ATOM 337 O 1 1 16.630 6.422 23.792 0.00 0.00 0
|
||||
ATOM 338 H 1 1 16.219 4.804 24.406 0.00 0.00 0
|
||||
ATOM 339 H 1 1 17.066 7.128 25.282 0.00 0.00 0
|
||||
ATOM 340 O 1 1 21.676 5.564 28.158 0.00 0.00 0
|
||||
ATOM 341 H 1 1 20.658 6.717 29.185 0.00 0.00 0
|
||||
ATOM 342 H 1 1 23.413 5.828 28.996 0.00 0.00 0
|
||||
ATOM 343 O 1 1 15.257 5.265 5.626 0.00 0.00 0
|
||||
ATOM 344 H 1 1 16.914 4.519 5.490 0.00 0.00 0
|
||||
ATOM 345 H 1 1 15.144 6.150 6.972 0.00 0.00 0
|
||||
ATOM 346 O 1 1 20.137 11.082 10.437 0.00 0.00 0
|
||||
ATOM 347 H 1 1 20.021 10.947 8.733 0.00 0.00 0
|
||||
ATOM 348 H 1 1 21.025 12.555 10.853 0.00 0.00 0
|
||||
ATOM 349 O 1 1 23.089 14.627 12.437 0.00 0.00 0
|
||||
ATOM 350 H 1 1 24.716 15.254 12.736 0.00 0.00 0
|
||||
ATOM 351 H 1 1 23.284 13.228 13.653 0.00 0.00 0
|
||||
ATOM 352 O 1 1 24.083 12.649 22.566 0.00 0.00 0
|
||||
ATOM 353 H 1 1 22.397 12.663 23.042 0.00 0.00 0
|
||||
ATOM 354 H 1 1 24.901 13.851 23.565 0.00 0.00 0
|
||||
ATOM 355 O 1 1 17.865 7.909 30.036 0.00 0.00 0
|
||||
ATOM 356 H 1 1 17.509 8.045 31.982 0.00 0.00 0
|
||||
ATOM 357 H 1 1 18.078 9.582 29.318 0.00 0.00 0
|
||||
ATOM 358 O 1 1 18.824 8.486 0.104 0.00 0.00 0
|
||||
ATOM 359 H 1 1 19.997 10.191 -0.057 0.00 0.00 0
|
||||
ATOM 360 H 1 1 17.077 8.998 0.779 0.00 0.00 0
|
||||
ATOM 361 O 1 1 20.122 9.143 5.343 0.00 0.00 0
|
||||
ATOM 362 H 1 1 19.373 8.819 3.821 0.00 0.00 0
|
||||
ATOM 363 H 1 1 21.998 8.776 5.128 0.00 0.00 0
|
||||
ATOM 364 O 1 1 16.413 14.459 5.855 0.00 0.00 0
|
||||
ATOM 365 H 1 1 15.536 13.007 5.239 0.00 0.00 0
|
||||
ATOM 366 H 1 1 16.006 14.725 7.737 0.00 0.00 0
|
||||
ATOM 367 O 1 1 17.561 15.066 15.654 0.00 0.00 0
|
||||
ATOM 368 H 1 1 17.575 13.398 16.055 0.00 0.00 0
|
||||
ATOM 369 H 1 1 18.978 15.828 16.400 0.00 0.00 0
|
||||
ATOM 370 O 1 1 26.374 17.047 24.817 0.00 0.00 0
|
||||
ATOM 371 H 1 1 27.983 17.098 25.632 0.00 0.00 0
|
||||
ATOM 372 H 1 1 25.629 18.751 24.919 0.00 0.00 0
|
||||
ATOM 373 O 1 1 19.784 12.960 28.706 0.00 0.00 0
|
||||
ATOM 374 H 1 1 21.662 13.055 28.871 0.00 0.00 0
|
||||
ATOM 375 H 1 1 19.545 14.070 27.143 0.00 0.00 0
|
||||
ATOM 376 O 1 1 17.891 16.733 32.499 0.00 0.00 0
|
||||
ATOM 377 H 1 1 18.327 15.240 31.277 0.00 0.00 0
|
||||
ATOM 378 H 1 1 18.633 18.335 31.693 0.00 0.00 0
|
||||
ATOM 379 O 1 1 23.733 23.024 1.663 0.00 0.00 0
|
||||
ATOM 380 H 1 1 24.800 24.052 2.776 0.00 0.00 0
|
||||
ATOM 381 H 1 1 24.693 22.618 0.198 0.00 0.00 0
|
||||
ATOM 382 O 1 1 20.789 18.440 9.443 0.00 0.00 0
|
||||
ATOM 383 H 1 1 20.766 17.257 7.881 0.00 0.00 0
|
||||
ATOM 384 H 1 1 21.896 17.345 10.385 0.00 0.00 0
|
||||
ATOM 385 O 1 1 21.574 17.493 17.838 0.00 0.00 0
|
||||
ATOM 386 H 1 1 20.597 18.955 17.218 0.00 0.00 0
|
||||
ATOM 387 H 1 1 22.538 16.874 16.251 0.00 0.00 0
|
||||
ATOM 388 O 1 1 19.168 14.748 24.131 0.00 0.00 0
|
||||
ATOM 389 H 1 1 19.711 16.390 23.712 0.00 0.00 0
|
||||
ATOM 390 H 1 1 17.429 14.695 24.403 0.00 0.00 0
|
||||
ATOM 391 O 1 1 22.149 20.198 24.977 0.00 0.00 0
|
||||
ATOM 392 H 1 1 21.639 20.924 26.486 0.00 0.00 0
|
||||
ATOM 393 H 1 1 22.656 21.657 24.411 0.00 0.00 0
|
||||
ATOM 394 O 1 1 20.565 20.792 29.600 0.00 0.00 0
|
||||
ATOM 395 H 1 1 22.264 20.409 30.214 0.00 0.00 0
|
||||
ATOM 396 H 1 1 20.548 22.408 30.597 0.00 0.00 0
|
||||
ATOM 397 O 1 1 20.802 26.547 9.615 0.00 0.00 0
|
||||
ATOM 398 H 1 1 20.099 27.984 8.338 0.00 0.00 0
|
||||
ATOM 399 H 1 1 21.277 27.539 11.325 0.00 0.00 0
|
||||
ATOM 400 O 1 1 16.283 23.589 7.779 0.00 0.00 0
|
||||
ATOM 401 H 1 1 16.093 21.973 6.712 0.00 0.00 0
|
||||
ATOM 402 H 1 1 17.901 22.971 8.154 0.00 0.00 0
|
||||
ATOM 403 O 1 1 18.469 29.798 13.568 0.00 0.00 0
|
||||
ATOM 404 H 1 1 19.712 31.216 13.506 0.00 0.00 0
|
||||
ATOM 405 H 1 1 16.872 30.343 14.396 0.00 0.00 0
|
||||
ATOM 406 O 1 1 18.790 21.712 16.060 0.00 0.00 0
|
||||
ATOM 407 H 1 1 19.878 23.090 16.485 0.00 0.00 0
|
||||
ATOM 408 H 1 1 17.201 22.326 15.819 0.00 0.00 0
|
||||
ATOM 409 O 1 1 21.747 26.084 16.349 0.00 0.00 0
|
||||
ATOM 410 H 1 1 20.783 27.021 15.300 0.00 0.00 0
|
||||
ATOM 411 H 1 1 22.705 27.328 17.206 0.00 0.00 0
|
||||
ATOM 412 O 1 1 20.769 26.211 32.050 0.00 0.00 0
|
||||
ATOM 413 H 1 1 21.488 27.404 33.328 0.00 0.00 0
|
||||
ATOM 414 H 1 1 18.989 26.710 32.145 0.00 0.00 0
|
||||
ATOM 415 O 1 1 19.820 29.181 5.559 0.00 0.00 0
|
||||
ATOM 416 H 1 1 20.991 29.509 4.109 0.00 0.00 0
|
||||
ATOM 417 H 1 1 19.431 31.018 6.221 0.00 0.00 0
|
||||
ATOM 418 O 1 1 19.240 33.867 7.993 0.00 0.00 0
|
||||
ATOM 419 H 1 1 19.107 35.039 6.604 0.00 0.00 0
|
||||
ATOM 420 H 1 1 20.697 33.671 9.063 0.00 0.00 0
|
||||
ATOM 421 O 1 1 22.511 34.976 15.793 0.00 0.00 0
|
||||
ATOM 422 H 1 1 23.716 36.163 16.603 0.00 0.00 0
|
||||
ATOM 423 H 1 1 21.699 36.150 14.467 0.00 0.00 0
|
||||
ATOM 424 O 1 1 22.622 30.284 19.069 0.00 0.00 0
|
||||
ATOM 425 H 1 1 22.049 31.351 17.725 0.00 0.00 0
|
||||
ATOM 426 H 1 1 24.411 30.773 19.576 0.00 0.00 0
|
||||
ATOM 427 O 1 1 18.639 33.611 28.369 0.00 0.00 0
|
||||
ATOM 428 H 1 1 18.226 32.159 29.103 0.00 0.00 0
|
||||
ATOM 429 H 1 1 19.906 33.008 27.158 0.00 0.00 0
|
||||
ATOM 430 O 1 1 22.520 1.325 31.926 0.00 0.00 0
|
||||
ATOM 431 H 1 1 22.803 2.668 30.796 0.00 0.00 0
|
||||
ATOM 432 H 1 1 21.045 0.425 31.122 0.00 0.00 0
|
||||
ATOM 433 O 1 1 21.754 3.789 1.159 0.00 0.00 0
|
||||
ATOM 434 H 1 1 22.085 2.785 -0.180 0.00 0.00 0
|
||||
ATOM 435 H 1 1 20.850 5.175 0.610 0.00 0.00 0
|
||||
ATOM 436 O 1 1 28.457 5.539 12.133 0.00 0.00 0
|
||||
ATOM 437 H 1 1 29.489 4.390 11.182 0.00 0.00 0
|
||||
ATOM 438 H 1 1 29.161 7.131 12.587 0.00 0.00 0
|
||||
ATOM 439 O 1 1 22.495 5.966 17.324 0.00 0.00 0
|
||||
ATOM 440 H 1 1 24.377 5.379 17.393 0.00 0.00 0
|
||||
ATOM 441 H 1 1 21.906 5.491 18.857 0.00 0.00 0
|
||||
ATOM 442 O 1 1 28.128 3.304 22.287 0.00 0.00 0
|
||||
ATOM 443 H 1 1 28.123 2.999 20.491 0.00 0.00 0
|
||||
ATOM 444 H 1 1 26.533 3.355 22.876 0.00 0.00 0
|
||||
ATOM 445 O 1 1 28.378 10.455 27.266 0.00 0.00 0
|
||||
ATOM 446 H 1 1 30.019 10.292 28.051 0.00 0.00 0
|
||||
ATOM 447 H 1 1 28.635 10.039 25.463 0.00 0.00 0
|
||||
ATOM 448 O 1 1 27.031 8.353 34.806 0.00 0.00 0
|
||||
ATOM 449 H 1 1 26.116 9.984 34.571 0.00 0.00 0
|
||||
ATOM 450 H 1 1 28.685 8.951 34.739 0.00 0.00 0
|
||||
ATOM 451 O 1 1 24.951 8.160 4.454 0.00 0.00 0
|
||||
ATOM 452 H 1 1 25.930 9.616 5.160 0.00 0.00 0
|
||||
ATOM 453 H 1 1 25.947 7.994 2.724 0.00 0.00 0
|
||||
ATOM 454 O 1 1 26.937 12.436 6.869 0.00 0.00 0
|
||||
ATOM 455 H 1 1 25.492 13.284 6.708 0.00 0.00 0
|
||||
ATOM 456 H 1 1 27.689 13.332 8.266 0.00 0.00 0
|
||||
ATOM 457 O 1 1 23.365 11.214 16.933 0.00 0.00 0
|
||||
ATOM 458 H 1 1 22.247 9.744 16.789 0.00 0.00 0
|
||||
ATOM 459 H 1 1 23.264 12.035 18.539 0.00 0.00 0
|
||||
ATOM 460 O 1 1 28.321 8.759 22.158 0.00 0.00 0
|
||||
ATOM 461 H 1 1 27.662 6.895 22.482 0.00 0.00 0
|
||||
ATOM 462 H 1 1 26.971 9.710 21.902 0.00 0.00 0
|
||||
ATOM 463 O 1 1 27.071 6.109 29.555 0.00 0.00 0
|
||||
ATOM 464 H 1 1 27.591 7.663 28.857 0.00 0.00 0
|
||||
ATOM 465 H 1 1 27.304 6.320 31.261 0.00 0.00 0
|
||||
ATOM 466 O 1 1 22.474 11.704 34.640 0.00 0.00 0
|
||||
ATOM 467 H 1 1 22.752 13.304 35.584 0.00 0.00 0
|
||||
ATOM 468 H 1 1 22.840 12.090 33.030 0.00 0.00 0
|
||||
ATOM 469 O 1 1 21.656 14.971 5.615 0.00 0.00 0
|
||||
ATOM 470 H 1 1 21.690 15.860 3.977 0.00 0.00 0
|
||||
ATOM 471 H 1 1 19.964 14.225 5.774 0.00 0.00 0
|
||||
ATOM 472 O 1 1 28.539 21.492 9.820 0.00 0.00 0
|
||||
ATOM 473 H 1 1 27.288 22.181 8.688 0.00 0.00 0
|
||||
ATOM 474 H 1 1 28.065 22.420 11.602 0.00 0.00 0
|
||||
ATOM 475 O 1 1 28.364 16.020 11.109 0.00 0.00 0
|
||||
ATOM 476 H 1 1 30.033 16.649 12.089 0.00 0.00 0
|
||||
ATOM 477 H 1 1 28.456 17.440 10.082 0.00 0.00 0
|
||||
ATOM 478 O 1 1 0.054 13.686 18.103 0.00 0.00 0
|
||||
ATOM 479 H 1 1 -1.714 12.928 18.841 0.00 0.00 0
|
||||
ATOM 480 H 1 1 1.008 12.429 17.383 0.00 0.00 0
|
||||
ATOM 481 O 1 1 24.636 12.894 29.957 0.00 0.00 0
|
||||
ATOM 482 H 1 1 25.906 13.914 31.183 0.00 0.00 0
|
||||
ATOM 483 H 1 1 25.641 11.609 29.162 0.00 0.00 0
|
||||
ATOM 484 O 1 1 21.548 17.250 0.749 0.00 0.00 0
|
||||
ATOM 485 H 1 1 21.843 19.026 0.905 0.00 0.00 0
|
||||
ATOM 486 H 1 1 20.385 16.716 -0.697 0.00 0.00 0
|
||||
ATOM 487 O 1 1 26.095 27.274 4.520 0.00 0.00 0
|
||||
ATOM 488 H 1 1 27.889 26.458 4.505 0.00 0.00 0
|
||||
ATOM 489 H 1 1 25.648 26.970 6.165 0.00 0.00 0
|
||||
ATOM 490 O 1 1 23.610 22.515 8.008 0.00 0.00 0
|
||||
ATOM 491 H 1 1 22.653 21.187 8.739 0.00 0.00 0
|
||||
ATOM 492 H 1 1 22.286 24.095 8.444 0.00 0.00 0
|
||||
ATOM 493 O 1 1 27.355 18.929 18.180 0.00 0.00 0
|
||||
ATOM 494 H 1 1 27.200 20.349 17.155 0.00 0.00 0
|
||||
ATOM 495 H 1 1 25.579 18.322 18.770 0.00 0.00 0
|
||||
ATOM 496 O 1 1 26.765 23.633 14.444 0.00 0.00 0
|
||||
ATOM 497 H 1 1 27.441 25.298 13.651 0.00 0.00 0
|
||||
ATOM 498 H 1 1 25.086 24.256 14.749 0.00 0.00 0
|
||||
ATOM 499 O 1 1 31.478 20.769 20.986 0.00 0.00 0
|
||||
ATOM 500 H 1 1 30.440 22.509 21.135 0.00 0.00 0
|
||||
ATOM 501 H 1 1 30.567 19.656 20.043 0.00 0.00 0
|
||||
ATOM 502 O 1 1 24.812 20.412 32.668 0.00 0.00 0
|
||||
ATOM 503 H 1 1 26.242 21.478 31.874 0.00 0.00 0
|
||||
ATOM 504 H 1 1 25.787 19.023 33.158 0.00 0.00 0
|
||||
ATOM 505 O 1 1 22.105 29.076 0.928 0.00 0.00 0
|
||||
ATOM 506 H 1 1 23.296 27.923 1.739 0.00 0.00 0
|
||||
ATOM 507 H 1 1 22.623 30.994 0.882 0.00 0.00 0
|
||||
ATOM 508 O 1 1 29.572 31.256 8.626 0.00 0.00 0
|
||||
ATOM 509 H 1 1 30.795 30.203 7.736 0.00 0.00 0
|
||||
ATOM 510 H 1 1 28.277 31.519 7.260 0.00 0.00 0
|
||||
ATOM 511 O 1 1 31.817 34.843 18.283 0.00 0.00 0
|
||||
ATOM 512 H 1 1 32.438 34.389 16.474 0.00 0.00 0
|
||||
ATOM 513 H 1 1 32.743 36.422 18.341 0.00 0.00 0
|
||||
ATOM 514 O 1 1 27.915 25.601 19.033 0.00 0.00 0
|
||||
ATOM 515 H 1 1 29.358 26.561 19.190 0.00 0.00 0
|
||||
ATOM 516 H 1 1 28.148 24.429 17.530 0.00 0.00 0
|
||||
ATOM 517 O 1 1 24.548 24.654 24.025 0.00 0.00 0
|
||||
ATOM 518 H 1 1 25.528 25.635 22.824 0.00 0.00 0
|
||||
ATOM 519 H 1 1 25.300 25.200 25.645 0.00 0.00 0
|
||||
ATOM 520 O 1 1 28.540 22.922 30.370 0.00 0.00 0
|
||||
ATOM 521 H 1 1 27.414 24.096 29.781 0.00 0.00 0
|
||||
ATOM 522 H 1 1 29.674 23.914 31.873 0.00 0.00 0
|
||||
ATOM 523 O 1 1 24.969 33.623 1.014 0.00 0.00 0
|
||||
ATOM 524 H 1 1 26.521 33.058 1.518 0.00 0.00 0
|
||||
ATOM 525 H 1 1 24.990 34.322 -0.683 0.00 0.00 0
|
||||
ATOM 526 O 1 1 23.075 32.171 11.324 0.00 0.00 0
|
||||
ATOM 527 H 1 1 23.316 32.775 13.097 0.00 0.00 0
|
||||
ATOM 528 H 1 1 24.460 33.203 10.662 0.00 0.00 0
|
||||
ATOM 529 O 1 1 27.497 2.736 17.224 0.00 0.00 0
|
||||
ATOM 530 H 1 1 28.397 3.415 15.715 0.00 0.00 0
|
||||
ATOM 531 H 1 1 28.234 1.233 17.412 0.00 0.00 0
|
||||
ATOM 532 O 1 1 26.369 33.060 22.077 0.00 0.00 0
|
||||
ATOM 533 H 1 1 26.170 34.746 22.264 0.00 0.00 0
|
||||
ATOM 534 H 1 1 27.592 32.404 23.321 0.00 0.00 0
|
||||
ATOM 535 O 1 1 30.221 30.950 25.843 0.00 0.00 0
|
||||
ATOM 536 H 1 1 30.305 29.038 26.208 0.00 0.00 0
|
||||
ATOM 537 H 1 1 30.363 31.979 27.414 0.00 0.00 0
|
||||
ATOM 538 O 1 1 24.973 26.732 28.607 0.00 0.00 0
|
||||
ATOM 539 H 1 1 25.385 28.369 29.248 0.00 0.00 0
|
||||
ATOM 540 H 1 1 23.330 26.597 29.234 0.00 0.00 0
|
||||
ATOM 541 O 1 1 32.165 4.857 2.258 0.00 0.00 0
|
||||
ATOM 542 H 1 1 32.417 6.195 1.157 0.00 0.00 0
|
||||
ATOM 543 H 1 1 32.615 3.727 1.112 0.00 0.00 0
|
||||
ATOM 544 O 1 1 28.067 3.533 5.217 0.00 0.00 0
|
||||
ATOM 545 H 1 1 26.960 4.447 4.158 0.00 0.00 0
|
||||
ATOM 546 H 1 1 29.875 3.863 4.448 0.00 0.00 0
|
||||
ATOM 547 O 1 1 33.279 2.782 13.028 0.00 0.00 0
|
||||
ATOM 548 H 1 1 33.708 3.955 11.817 0.00 0.00 0
|
||||
ATOM 549 H 1 1 33.656 3.545 14.631 0.00 0.00 0
|
||||
ATOM 550 O 1 1 34.278 4.944 17.492 0.00 0.00 0
|
||||
ATOM 551 H 1 1 33.438 6.563 17.876 0.00 0.00 0
|
||||
ATOM 552 H 1 1 34.906 4.452 18.995 0.00 0.00 0
|
||||
ATOM 553 O 1 1 32.363 1.908 26.092 0.00 0.00 0
|
||||
ATOM 554 H 1 1 31.941 1.683 24.268 0.00 0.00 0
|
||||
ATOM 555 H 1 1 33.850 1.390 26.904 0.00 0.00 0
|
||||
ATOM 556 O 1 1 27.982 0.418 28.241 0.00 0.00 0
|
||||
ATOM 557 H 1 1 27.516 2.080 28.309 0.00 0.00 0
|
||||
ATOM 558 H 1 1 29.593 0.176 27.299 0.00 0.00 0
|
||||
ATOM 559 O 1 1 28.845 14.672 2.724 0.00 0.00 0
|
||||
ATOM 560 H 1 1 27.963 13.930 4.139 0.00 0.00 0
|
||||
ATOM 561 H 1 1 30.386 15.714 3.379 0.00 0.00 0
|
||||
ATOM 562 O 1 1 28.083 10.618 14.298 0.00 0.00 0
|
||||
ATOM 563 H 1 1 28.623 12.160 13.293 0.00 0.00 0
|
||||
ATOM 564 H 1 1 26.486 11.015 15.379 0.00 0.00 0
|
||||
ATOM 565 O 1 1 33.867 10.545 13.306 0.00 0.00 0
|
||||
ATOM 566 H 1 1 35.165 9.612 13.810 0.00 0.00 0
|
||||
ATOM 567 H 1 1 33.615 10.270 11.513 0.00 0.00 0
|
||||
ATOM 568 O 1 1 31.790 9.696 18.223 0.00 0.00 0
|
||||
ATOM 569 H 1 1 30.484 9.334 19.421 0.00 0.00 0
|
||||
ATOM 570 H 1 1 30.834 10.096 16.929 0.00 0.00 0
|
||||
ATOM 571 O 1 1 30.141 15.006 21.532 0.00 0.00 0
|
||||
ATOM 572 H 1 1 28.565 15.594 22.099 0.00 0.00 0
|
||||
ATOM 573 H 1 1 30.942 14.253 23.077 0.00 0.00 0
|
||||
ATOM 574 O 1 1 32.798 10.732 30.680 0.00 0.00 0
|
||||
ATOM 575 H 1 1 34.073 9.528 30.799 0.00 0.00 0
|
||||
ATOM 576 H 1 1 32.991 11.512 28.983 0.00 0.00 0
|
||||
ATOM 577 O 1 1 33.652 16.265 5.086 0.00 0.00 0
|
||||
ATOM 578 H 1 1 35.399 16.239 4.730 0.00 0.00 0
|
||||
ATOM 579 H 1 1 33.503 17.939 5.631 0.00 0.00 0
|
||||
ATOM 580 O 1 1 31.947 10.799 7.943 0.00 0.00 0
|
||||
ATOM 581 H 1 1 29.894 10.549 7.619 0.00 0.00 0
|
||||
ATOM 582 H 1 1 32.271 12.414 7.075 0.00 0.00 0
|
||||
ATOM 583 O 1 1 0.329 15.516 11.746 0.00 0.00 0
|
||||
ATOM 584 H 1 1 -0.446 14.249 12.939 0.00 0.00 0
|
||||
ATOM 585 H 1 1 -0.685 17.018 11.935 0.00 0.00 0
|
||||
ATOM 586 O 1 1 4.262 19.165 14.308 0.00 0.00 0
|
||||
ATOM 587 H 1 1 3.579 17.691 14.920 0.00 0.00 0
|
||||
ATOM 588 H 1 1 5.723 19.183 15.204 0.00 0.00 0
|
||||
ATOM 589 O 1 1 32.995 13.546 25.948 0.00 0.00 0
|
||||
ATOM 590 H 1 1 32.167 15.060 26.787 0.00 0.00 0
|
||||
ATOM 591 H 1 1 34.425 13.800 25.007 0.00 0.00 0
|
||||
ATOM 592 O 1 1 1.773 13.524 34.037 0.00 0.00 0
|
||||
ATOM 593 H 1 1 0.227 14.409 33.446 0.00 0.00 0
|
||||
ATOM 594 H 1 1 2.167 14.670 35.511 0.00 0.00 0
|
||||
ATOM 595 O 1 1 33.029 20.529 7.247 0.00 0.00 0
|
||||
ATOM 596 H 1 1 34.388 21.414 8.003 0.00 0.00 0
|
||||
ATOM 597 H 1 1 31.451 20.831 8.182 0.00 0.00 0
|
||||
ATOM 598 O 1 1 2.037 24.250 10.251 0.00 0.00 0
|
||||
ATOM 599 H 1 1 3.743 25.008 9.876 0.00 0.00 0
|
||||
ATOM 600 H 1 1 1.894 25.043 11.903 0.00 0.00 0
|
||||
ATOM 601 O 1 1 32.753 19.259 13.976 0.00 0.00 0
|
||||
ATOM 602 H 1 1 32.792 20.886 13.792 0.00 0.00 0
|
||||
ATOM 603 H 1 1 34.334 18.799 14.976 0.00 0.00 0
|
||||
ATOM 604 O 1 1 0.396 18.673 18.699 0.00 0.00 0
|
||||
ATOM 605 H 1 1 -1.211 18.950 19.127 0.00 0.00 0
|
||||
ATOM 606 H 1 1 0.469 16.977 18.436 0.00 0.00 0
|
||||
ATOM 607 O 1 1 30.855 18.370 27.959 0.00 0.00 0
|
||||
ATOM 608 H 1 1 29.759 19.681 28.690 0.00 0.00 0
|
||||
ATOM 609 H 1 1 32.103 19.477 26.763 0.00 0.00 0
|
||||
ATOM 610 O 1 1 27.723 15.992 33.091 0.00 0.00 0
|
||||
ATOM 611 H 1 1 29.390 16.423 32.192 0.00 0.00 0
|
||||
ATOM 612 H 1 1 27.801 15.859 34.804 0.00 0.00 0
|
||||
ATOM 613 O 1 1 31.068 27.895 3.348 0.00 0.00 0
|
||||
ATOM 614 H 1 1 32.517 27.825 4.610 0.00 0.00 0
|
||||
ATOM 615 H 1 1 31.529 29.459 2.324 0.00 0.00 0
|
||||
ATOM 616 O 1 1 35.039 28.008 6.663 0.00 0.00 0
|
||||
ATOM 617 H 1 1 35.966 26.934 7.683 0.00 0.00 0
|
||||
ATOM 618 H 1 1 36.055 28.336 5.336 0.00 0.00 0
|
||||
ATOM 619 O 1 1 29.356 28.196 13.025 0.00 0.00 0
|
||||
ATOM 620 H 1 1 29.210 29.335 14.589 0.00 0.00 0
|
||||
ATOM 621 H 1 1 28.874 29.629 11.867 0.00 0.00 0
|
||||
ATOM 622 O 1 1 32.386 28.434 18.961 0.00 0.00 0
|
||||
ATOM 623 H 1 1 33.368 28.574 20.411 0.00 0.00 0
|
||||
ATOM 624 H 1 1 33.410 27.406 17.949 0.00 0.00 0
|
||||
ATOM 625 O 1 1 30.898 25.390 25.799 0.00 0.00 0
|
||||
ATOM 626 H 1 1 32.369 25.913 24.580 0.00 0.00 0
|
||||
ATOM 627 H 1 1 31.317 24.075 27.029 0.00 0.00 0
|
||||
ATOM 628 O 1 1 32.259 25.611 33.104 0.00 0.00 0
|
||||
ATOM 629 H 1 1 32.238 25.736 34.806 0.00 0.00 0
|
||||
ATOM 630 H 1 1 33.920 25.042 32.775 0.00 0.00 0
|
||||
ATOM 631 O 1 1 30.290 32.645 1.341 0.00 0.00 0
|
||||
ATOM 632 H 1 1 29.949 32.793 -0.430 0.00 0.00 0
|
||||
ATOM 633 H 1 1 31.762 33.340 1.847 0.00 0.00 0
|
||||
ATOM 634 O 1 1 25.536 34.235 6.469 0.00 0.00 0
|
||||
ATOM 635 H 1 1 25.716 36.059 6.651 0.00 0.00 0
|
||||
ATOM 636 H 1 1 25.283 33.866 4.895 0.00 0.00 0
|
||||
ATOM 637 O 1 1 31.674 33.161 13.106 0.00 0.00 0
|
||||
ATOM 638 H 1 1 31.793 34.863 13.281 0.00 0.00 0
|
||||
ATOM 639 H 1 1 30.425 32.928 11.783 0.00 0.00 0
|
||||
ATOM 640 O 1 1 33.844 32.668 22.296 0.00 0.00 0
|
||||
ATOM 641 H 1 1 32.750 32.234 23.524 0.00 0.00 0
|
||||
ATOM 642 H 1 1 32.917 32.875 20.736 0.00 0.00 0
|
||||
ATOM 643 O 1 1 31.603 30.542 30.805 0.00 0.00 0
|
||||
ATOM 644 H 1 1 33.451 30.804 30.468 0.00 0.00 0
|
||||
ATOM 645 H 1 1 31.575 28.816 31.756 0.00 0.00 0
|
||||
ATOM 646 O 1 1 26.295 31.235 30.599 0.00 0.00 0
|
||||
ATOM 647 H 1 1 27.834 30.515 30.607 0.00 0.00 0
|
||||
ATOM 648 H 1 1 26.362 32.920 29.856 0.00 0.00 0
|
||||
END
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,32 +0,0 @@
|
||||
units electron
|
||||
atom_style full
|
||||
|
||||
#pair_style lj/cut/coul/long 17.01
|
||||
pair_style lj/cut/tip4p/long 1 2 1 1 0.278072379 17.007
|
||||
#bond_style harmonic
|
||||
bond_style class2
|
||||
angle_style harmonic
|
||||
#kspace_style pppm 0.0001
|
||||
kspace_style pppm/tip4p 0.0001
|
||||
|
||||
read_data data.water
|
||||
pair_coeff * * 0 0
|
||||
pair_coeff 1 1 0.000295147 5.96946
|
||||
|
||||
neighbor 2.0 bin
|
||||
|
||||
timestep 0.00025
|
||||
|
||||
#velocity all create 298.0 2345187
|
||||
|
||||
#thermo_style multi
|
||||
#thermo 1
|
||||
|
||||
#fix 1 all nvt temp 298.0 298.0 30.0 tchain 1
|
||||
#fix 1 all nve
|
||||
fix 1 all ipi no_rpc 32345 unix
|
||||
|
||||
#dump 1 all xyz 25 dump.xyz
|
||||
|
||||
run 100000000
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
<simulation>
|
||||
<initialize nbeads='32'>
|
||||
<file mode='pdb'> water_298K.pdb </file>
|
||||
<velocities mode="thermal" units='kelvin'> 298 </velocities>
|
||||
</initialize>
|
||||
<output prefix='no_rpc'>
|
||||
<properties stride='1' filename='out'> [ step, time{picosecond}, conserved, temperature{kelvin}, kinetic_cv, potential, pressure_cv{megapascal}] </properties>
|
||||
<trajectory filename='pos' stride='20'> positions </trajectory>
|
||||
</output>
|
||||
<total_steps>500000</total_steps>
|
||||
<prng><seed>32345</seed></prng>
|
||||
<forces>
|
||||
<socket mode='unix'>
|
||||
<address>no_rpc</address>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='svr'>
|
||||
<tau units='femtosecond'>25</tau>
|
||||
</thermostat>
|
||||
<timestep units='femtosecond'> 0.25</timestep>
|
||||
<temperature units='kelvin'>298</temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,650 +0,0 @@
|
||||
CRYST 35.233 35.233 35.233 90.00 90.00 90.00 P 1 1
|
||||
ATOM 1 O 1 1 3.846 5.672 1.323 0.00 0.00 0
|
||||
ATOM 2 H 1 1 2.979 7.054 0.857 0.00 0.00 0
|
||||
ATOM 3 H 1 1 5.525 5.697 0.451 0.00 0.00 0
|
||||
ATOM 4 O 1 1 34.557 34.341 3.078 0.00 0.00 0
|
||||
ATOM 5 H 1 1 33.722 34.689 4.840 0.00 0.00 0
|
||||
ATOM 6 H 1 1 36.029 33.220 3.711 0.00 0.00 0
|
||||
ATOM 7 O 1 1 5.591 1.963 13.477 0.00 0.00 0
|
||||
ATOM 8 H 1 1 7.265 1.864 13.851 0.00 0.00 0
|
||||
ATOM 9 H 1 1 5.009 3.555 13.916 0.00 0.00 0
|
||||
ATOM 10 O 1 1 1.060 2.061 21.718 0.00 0.00 0
|
||||
ATOM 11 H 1 1 0.757 0.261 21.820 0.00 0.00 0
|
||||
ATOM 12 H 1 1 0.213 3.013 23.047 0.00 0.00 0
|
||||
ATOM 13 O 1 1 1.200 1.337 29.006 0.00 0.00 0
|
||||
ATOM 14 H 1 1 0.818 1.884 30.732 0.00 0.00 0
|
||||
ATOM 15 H 1 1 2.883 1.825 29.011 0.00 0.00 0
|
||||
ATOM 16 O 1 1 1.331 1.386 34.306 0.00 0.00 0
|
||||
ATOM 17 H 1 1 2.392 2.898 34.846 0.00 0.00 0
|
||||
ATOM 18 H 1 1 0.814 0.532 35.836 0.00 0.00 0
|
||||
ATOM 19 O 1 1 31.451 10.201 0.726 0.00 0.00 0
|
||||
ATOM 20 H 1 1 32.282 10.877 -0.750 0.00 0.00 0
|
||||
ATOM 21 H 1 1 30.920 11.594 1.677 0.00 0.00 0
|
||||
ATOM 22 O 1 1 0.836 10.808 4.298 0.00 0.00 0
|
||||
ATOM 23 H 1 1 0.305 10.643 2.793 0.00 0.00 0
|
||||
ATOM 24 H 1 1 -0.356 10.334 5.524 0.00 0.00 0
|
||||
ATOM 25 O 1 1 34.381 5.979 9.194 0.00 0.00 0
|
||||
ATOM 26 H 1 1 33.616 7.673 8.857 0.00 0.00 0
|
||||
ATOM 27 H 1 1 35.115 5.260 7.618 0.00 0.00 0
|
||||
ATOM 28 O 1 1 33.212 6.480 24.278 0.00 0.00 0
|
||||
ATOM 29 H 1 1 31.624 6.908 23.521 0.00 0.00 0
|
||||
ATOM 30 H 1 1 32.544 4.990 24.982 0.00 0.00 0
|
||||
ATOM 31 O 1 1 1.992 9.002 26.863 0.00 0.00 0
|
||||
ATOM 32 H 1 1 1.856 10.175 25.579 0.00 0.00 0
|
||||
ATOM 33 H 1 1 0.519 8.099 26.386 0.00 0.00 0
|
||||
ATOM 34 O 1 1 2.054 8.660 32.515 0.00 0.00 0
|
||||
ATOM 35 H 1 1 2.167 8.727 30.494 0.00 0.00 0
|
||||
ATOM 36 H 1 1 2.374 10.513 33.038 0.00 0.00 0
|
||||
ATOM 37 O 1 1 3.402 16.639 3.008 0.00 0.00 0
|
||||
ATOM 38 H 1 1 4.127 15.872 4.446 0.00 0.00 0
|
||||
ATOM 39 H 1 1 2.905 18.339 3.160 0.00 0.00 0
|
||||
ATOM 40 O 1 1 4.222 15.444 8.072 0.00 0.00 0
|
||||
ATOM 41 H 1 1 5.211 16.756 8.299 0.00 0.00 0
|
||||
ATOM 42 H 1 1 2.560 15.492 8.860 0.00 0.00 0
|
||||
ATOM 43 O 1 1 2.831 9.246 16.488 0.00 0.00 0
|
||||
ATOM 44 H 1 1 2.869 8.023 18.050 0.00 0.00 0
|
||||
ATOM 45 H 1 1 3.960 8.467 15.154 0.00 0.00 0
|
||||
ATOM 46 O 1 1 5.563 6.003 20.907 0.00 0.00 0
|
||||
ATOM 47 H 1 1 4.653 4.638 21.480 0.00 0.00 0
|
||||
ATOM 48 H 1 1 6.405 6.208 22.529 0.00 0.00 0
|
||||
ATOM 49 O 1 1 2.087 13.370 22.913 0.00 0.00 0
|
||||
ATOM 50 H 1 1 2.832 14.804 23.422 0.00 0.00 0
|
||||
ATOM 51 H 1 1 1.434 13.509 21.196 0.00 0.00 0
|
||||
ATOM 52 O 1 1 3.369 17.886 25.109 0.00 0.00 0
|
||||
ATOM 53 H 1 1 3.655 17.200 26.766 0.00 0.00 0
|
||||
ATOM 54 H 1 1 4.772 18.977 24.500 0.00 0.00 0
|
||||
ATOM 55 O 1 1 34.764 20.803 0.948 0.00 0.00 0
|
||||
ATOM 56 H 1 1 35.210 21.267 2.816 0.00 0.00 0
|
||||
ATOM 57 H 1 1 35.962 21.726 0.131 0.00 0.00 0
|
||||
ATOM 58 O 1 1 2.836 24.178 15.229 0.00 0.00 0
|
||||
ATOM 59 H 1 1 2.795 22.346 14.876 0.00 0.00 0
|
||||
ATOM 60 H 1 1 2.414 24.115 17.130 0.00 0.00 0
|
||||
ATOM 61 O 1 1 33.000 24.481 15.230 0.00 0.00 0
|
||||
ATOM 62 H 1 1 34.640 24.804 15.013 0.00 0.00 0
|
||||
ATOM 63 H 1 1 32.401 25.764 14.295 0.00 0.00 0
|
||||
ATOM 64 O 1 1 0.404 26.779 23.400 0.00 0.00 0
|
||||
ATOM 65 H 1 1 1.353 27.248 24.987 0.00 0.00 0
|
||||
ATOM 66 H 1 1 1.546 28.050 22.317 0.00 0.00 0
|
||||
ATOM 67 O 1 1 34.222 21.380 25.418 0.00 0.00 0
|
||||
ATOM 68 H 1 1 35.669 20.151 25.317 0.00 0.00 0
|
||||
ATOM 69 H 1 1 32.960 21.180 23.992 0.00 0.00 0
|
||||
ATOM 70 O 1 1 33.259 17.438 32.480 0.00 0.00 0
|
||||
ATOM 71 H 1 1 33.314 18.782 33.883 0.00 0.00 0
|
||||
ATOM 72 H 1 1 32.743 18.181 30.871 0.00 0.00 0
|
||||
ATOM 73 O 1 1 4.463 21.979 3.936 0.00 0.00 0
|
||||
ATOM 74 H 1 1 5.856 23.084 3.400 0.00 0.00 0
|
||||
ATOM 75 H 1 1 3.986 22.180 5.602 0.00 0.00 0
|
||||
ATOM 76 O 1 1 6.258 25.851 8.520 0.00 0.00 0
|
||||
ATOM 77 H 1 1 5.767 27.693 8.476 0.00 0.00 0
|
||||
ATOM 78 H 1 1 7.202 25.506 10.186 0.00 0.00 0
|
||||
ATOM 79 O 1 1 0.601 29.737 12.747 0.00 0.00 0
|
||||
ATOM 80 H 1 1 -0.685 30.842 12.350 0.00 0.00 0
|
||||
ATOM 81 H 1 1 1.336 30.716 14.031 0.00 0.00 0
|
||||
ATOM 82 O 1 1 7.563 28.191 24.333 0.00 0.00 0
|
||||
ATOM 83 H 1 1 9.201 28.828 24.684 0.00 0.00 0
|
||||
ATOM 84 H 1 1 7.381 27.621 22.799 0.00 0.00 0
|
||||
ATOM 85 O 1 1 3.653 27.109 27.772 0.00 0.00 0
|
||||
ATOM 86 H 1 1 5.126 27.015 26.772 0.00 0.00 0
|
||||
ATOM 87 H 1 1 3.031 28.756 27.698 0.00 0.00 0
|
||||
ATOM 88 O 1 1 2.596 23.991 32.476 0.00 0.00 0
|
||||
ATOM 89 H 1 1 2.879 24.791 30.859 0.00 0.00 0
|
||||
ATOM 90 H 1 1 4.003 22.913 32.701 0.00 0.00 0
|
||||
ATOM 91 O 1 1 3.083 31.317 3.644 0.00 0.00 0
|
||||
ATOM 92 H 1 1 4.133 30.589 2.539 0.00 0.00 0
|
||||
ATOM 93 H 1 1 4.218 32.173 5.037 0.00 0.00 0
|
||||
ATOM 94 O 1 1 4.661 30.555 9.368 0.00 0.00 0
|
||||
ATOM 95 H 1 1 3.184 29.843 10.132 0.00 0.00 0
|
||||
ATOM 96 H 1 1 4.358 32.448 9.126 0.00 0.00 0
|
||||
ATOM 97 O 1 1 3.465 32.537 15.778 0.00 0.00 0
|
||||
ATOM 98 H 1 1 5.072 31.819 15.903 0.00 0.00 0
|
||||
ATOM 99 H 1 1 4.055 34.257 15.284 0.00 0.00 0
|
||||
ATOM 100 O 1 1 4.215 29.153 20.317 0.00 0.00 0
|
||||
ATOM 101 H 1 1 3.658 30.176 18.842 0.00 0.00 0
|
||||
ATOM 102 H 1 1 4.959 30.291 21.449 0.00 0.00 0
|
||||
ATOM 103 O 1 1 1.126 31.333 28.768 0.00 0.00 0
|
||||
ATOM 104 H 1 1 2.395 31.124 29.925 0.00 0.00 0
|
||||
ATOM 105 H 1 1 0.768 33.092 28.898 0.00 0.00 0
|
||||
ATOM 106 O 1 1 4.881 32.616 32.302 0.00 0.00 0
|
||||
ATOM 107 H 1 1 6.588 32.911 31.725 0.00 0.00 0
|
||||
ATOM 108 H 1 1 4.486 34.037 33.249 0.00 0.00 0
|
||||
ATOM 109 O 1 1 8.962 5.556 0.151 0.00 0.00 0
|
||||
ATOM 110 H 1 1 9.652 6.991 0.859 0.00 0.00 0
|
||||
ATOM 111 H 1 1 9.173 4.477 1.645 0.00 0.00 0
|
||||
ATOM 112 O 1 1 1.833 3.518 5.679 0.00 0.00 0
|
||||
ATOM 113 H 1 1 2.889 2.731 6.788 0.00 0.00 0
|
||||
ATOM 114 H 1 1 2.789 4.187 4.147 0.00 0.00 0
|
||||
ATOM 115 O 1 1 10.510 34.726 13.073 0.00 0.00 0
|
||||
ATOM 116 H 1 1 11.920 34.118 11.919 0.00 0.00 0
|
||||
ATOM 117 H 1 1 11.295 34.968 14.741 0.00 0.00 0
|
||||
ATOM 118 O 1 1 7.212 0.042 22.454 0.00 0.00 0
|
||||
ATOM 119 H 1 1 6.924 0.470 24.172 0.00 0.00 0
|
||||
ATOM 120 H 1 1 8.319 1.228 21.653 0.00 0.00 0
|
||||
ATOM 121 O 1 1 6.365 2.010 27.544 0.00 0.00 0
|
||||
ATOM 122 H 1 1 5.954 3.585 26.852 0.00 0.00 0
|
||||
ATOM 123 H 1 1 7.758 2.549 28.696 0.00 0.00 0
|
||||
ATOM 124 O 1 1 10.833 3.140 30.787 0.00 0.00 0
|
||||
ATOM 125 H 1 1 12.697 2.975 30.867 0.00 0.00 0
|
||||
ATOM 126 H 1 1 10.389 3.700 32.404 0.00 0.00 0
|
||||
ATOM 127 O 1 1 8.684 9.342 3.912 0.00 0.00 0
|
||||
ATOM 128 H 1 1 6.985 9.256 4.773 0.00 0.00 0
|
||||
ATOM 129 H 1 1 8.684 10.809 3.011 0.00 0.00 0
|
||||
ATOM 130 O 1 1 4.873 9.919 7.707 0.00 0.00 0
|
||||
ATOM 131 H 1 1 3.698 9.771 6.194 0.00 0.00 0
|
||||
ATOM 132 H 1 1 5.047 11.961 7.624 0.00 0.00 0
|
||||
ATOM 133 O 1 1 10.031 5.018 9.699 0.00 0.00 0
|
||||
ATOM 134 H 1 1 9.675 3.382 10.340 0.00 0.00 0
|
||||
ATOM 135 H 1 1 9.132 5.987 10.825 0.00 0.00 0
|
||||
ATOM 136 O 1 1 11.246 3.918 21.929 0.00 0.00 0
|
||||
ATOM 137 H 1 1 12.614 2.770 22.341 0.00 0.00 0
|
||||
ATOM 138 H 1 1 12.073 5.686 21.497 0.00 0.00 0
|
||||
ATOM 139 O 1 1 6.825 7.164 25.708 0.00 0.00 0
|
||||
ATOM 140 H 1 1 8.036 8.374 25.980 0.00 0.00 0
|
||||
ATOM 141 H 1 1 5.206 7.900 25.891 0.00 0.00 0
|
||||
ATOM 142 O 1 1 10.171 12.811 0.295 0.00 0.00 0
|
||||
ATOM 143 H 1 1 10.033 12.818 -1.609 0.00 0.00 0
|
||||
ATOM 144 H 1 1 9.880 14.492 0.480 0.00 0.00 0
|
||||
ATOM 145 O 1 1 8.190 17.402 1.253 0.00 0.00 0
|
||||
ATOM 146 H 1 1 9.472 18.531 1.253 0.00 0.00 0
|
||||
ATOM 147 H 1 1 6.351 17.817 1.568 0.00 0.00 0
|
||||
ATOM 148 O 1 1 11.233 16.188 8.299 0.00 0.00 0
|
||||
ATOM 149 H 1 1 10.291 17.689 8.166 0.00 0.00 0
|
||||
ATOM 150 H 1 1 12.768 17.123 8.733 0.00 0.00 0
|
||||
ATOM 151 O 1 1 6.386 8.002 12.846 0.00 0.00 0
|
||||
ATOM 152 H 1 1 7.701 8.896 13.655 0.00 0.00 0
|
||||
ATOM 153 H 1 1 5.591 8.877 11.519 0.00 0.00 0
|
||||
ATOM 154 O 1 1 8.184 10.419 18.848 0.00 0.00 0
|
||||
ATOM 155 H 1 1 9.498 9.434 19.905 0.00 0.00 0
|
||||
ATOM 156 H 1 1 6.882 9.027 18.948 0.00 0.00 0
|
||||
ATOM 157 O 1 1 10.806 14.431 21.328 0.00 0.00 0
|
||||
ATOM 158 H 1 1 9.177 13.531 20.670 0.00 0.00 0
|
||||
ATOM 159 H 1 1 11.344 15.696 20.448 0.00 0.00 0
|
||||
ATOM 160 O 1 1 9.237 13.928 30.341 0.00 0.00 0
|
||||
ATOM 161 H 1 1 10.779 14.839 30.522 0.00 0.00 0
|
||||
ATOM 162 H 1 1 9.965 13.192 28.899 0.00 0.00 0
|
||||
ATOM 163 O 1 1 10.918 21.707 1.864 0.00 0.00 0
|
||||
ATOM 164 H 1 1 10.280 23.449 2.279 0.00 0.00 0
|
||||
ATOM 165 H 1 1 12.708 21.456 1.749 0.00 0.00 0
|
||||
ATOM 166 O 1 1 9.353 16.125 13.927 0.00 0.00 0
|
||||
ATOM 167 H 1 1 9.938 17.594 14.618 0.00 0.00 0
|
||||
ATOM 168 H 1 1 9.518 16.360 12.244 0.00 0.00 0
|
||||
ATOM 169 O 1 1 10.371 11.107 14.268 0.00 0.00 0
|
||||
ATOM 170 H 1 1 9.644 10.406 15.859 0.00 0.00 0
|
||||
ATOM 171 H 1 1 9.434 12.523 14.117 0.00 0.00 0
|
||||
ATOM 172 O 1 1 3.351 22.769 20.196 0.00 0.00 0
|
||||
ATOM 173 H 1 1 2.055 23.686 21.503 0.00 0.00 0
|
||||
ATOM 174 H 1 1 2.452 21.401 19.413 0.00 0.00 0
|
||||
ATOM 175 O 1 1 6.836 21.329 23.199 0.00 0.00 0
|
||||
ATOM 176 H 1 1 8.249 20.848 22.320 0.00 0.00 0
|
||||
ATOM 177 H 1 1 5.668 21.841 21.886 0.00 0.00 0
|
||||
ATOM 178 O 1 1 4.604 15.649 30.043 0.00 0.00 0
|
||||
ATOM 179 H 1 1 6.453 15.217 30.207 0.00 0.00 0
|
||||
ATOM 180 H 1 1 3.822 14.762 31.562 0.00 0.00 0
|
||||
ATOM 181 O 1 1 7.125 19.976 9.421 0.00 0.00 0
|
||||
ATOM 182 H 1 1 5.918 20.453 10.730 0.00 0.00 0
|
||||
ATOM 183 H 1 1 8.099 21.496 9.491 0.00 0.00 0
|
||||
ATOM 184 O 1 1 9.063 25.912 13.186 0.00 0.00 0
|
||||
ATOM 185 H 1 1 10.350 26.572 12.367 0.00 0.00 0
|
||||
ATOM 186 H 1 1 9.680 24.367 13.697 0.00 0.00 0
|
||||
ATOM 187 O 1 1 8.022 22.343 17.042 0.00 0.00 0
|
||||
ATOM 188 H 1 1 9.144 23.367 18.074 0.00 0.00 0
|
||||
ATOM 189 H 1 1 6.562 23.462 16.852 0.00 0.00 0
|
||||
ATOM 190 O 1 1 10.762 26.285 19.963 0.00 0.00 0
|
||||
ATOM 191 H 1 1 11.036 27.966 20.538 0.00 0.00 0
|
||||
ATOM 192 H 1 1 11.078 25.401 21.456 0.00 0.00 0
|
||||
ATOM 193 O 1 1 9.158 22.902 28.391 0.00 0.00 0
|
||||
ATOM 194 H 1 1 8.219 23.528 27.085 0.00 0.00 0
|
||||
ATOM 195 H 1 1 8.089 21.760 29.509 0.00 0.00 0
|
||||
ATOM 196 O 1 1 6.219 20.158 31.921 0.00 0.00 0
|
||||
ATOM 197 H 1 1 5.635 18.511 31.161 0.00 0.00 0
|
||||
ATOM 198 H 1 1 7.530 19.624 33.071 0.00 0.00 0
|
||||
ATOM 199 O 1 1 11.191 31.509 2.617 0.00 0.00 0
|
||||
ATOM 200 H 1 1 10.460 32.214 4.108 0.00 0.00 0
|
||||
ATOM 201 H 1 1 13.176 31.751 2.577 0.00 0.00 0
|
||||
ATOM 202 O 1 1 4.748 0.055 8.605 0.00 0.00 0
|
||||
ATOM 203 H 1 1 5.380 0.517 10.183 0.00 0.00 0
|
||||
ATOM 204 H 1 1 6.050 -0.306 7.480 0.00 0.00 0
|
||||
ATOM 205 O 1 1 8.695 30.809 15.731 0.00 0.00 0
|
||||
ATOM 206 H 1 1 9.189 32.103 14.495 0.00 0.00 0
|
||||
ATOM 207 H 1 1 8.447 29.069 14.868 0.00 0.00 0
|
||||
ATOM 208 O 1 1 10.128 31.402 20.766 0.00 0.00 0
|
||||
ATOM 209 H 1 1 9.456 30.905 19.155 0.00 0.00 0
|
||||
ATOM 210 H 1 1 9.020 32.731 21.415 0.00 0.00 0
|
||||
ATOM 211 O 1 1 12.238 30.162 25.837 0.00 0.00 0
|
||||
ATOM 212 H 1 1 11.418 30.908 27.110 0.00 0.00 0
|
||||
ATOM 213 H 1 1 12.396 31.331 24.678 0.00 0.00 0
|
||||
ATOM 214 O 1 1 10.395 32.537 30.624 0.00 0.00 0
|
||||
ATOM 215 H 1 1 11.042 34.339 30.751 0.00 0.00 0
|
||||
ATOM 216 H 1 1 11.378 31.486 31.538 0.00 0.00 0
|
||||
ATOM 217 O 1 1 10.438 3.626 5.087 0.00 0.00 0
|
||||
ATOM 218 H 1 1 12.435 4.082 5.136 0.00 0.00 0
|
||||
ATOM 219 H 1 1 9.822 4.284 6.681 0.00 0.00 0
|
||||
ATOM 220 O 1 1 14.762 3.401 13.776 0.00 0.00 0
|
||||
ATOM 221 H 1 1 16.518 3.824 13.376 0.00 0.00 0
|
||||
ATOM 222 H 1 1 13.752 4.757 12.964 0.00 0.00 0
|
||||
ATOM 223 O 1 1 12.382 1.012 17.643 0.00 0.00 0
|
||||
ATOM 224 H 1 1 13.346 1.997 16.444 0.00 0.00 0
|
||||
ATOM 225 H 1 1 11.931 2.133 18.998 0.00 0.00 0
|
||||
ATOM 226 O 1 1 15.278 1.293 24.559 0.00 0.00 0
|
||||
ATOM 227 H 1 1 16.071 0.946 26.365 0.00 0.00 0
|
||||
ATOM 228 H 1 1 15.794 0.199 23.499 0.00 0.00 0
|
||||
ATOM 229 O 1 1 22.226 31.627 24.712 0.00 0.00 0
|
||||
ATOM 230 H 1 1 23.338 32.595 23.876 0.00 0.00 0
|
||||
ATOM 231 H 1 1 22.161 30.053 24.132 0.00 0.00 0
|
||||
ATOM 232 O 1 1 15.640 1.847 32.717 0.00 0.00 0
|
||||
ATOM 233 H 1 1 17.488 2.473 31.874 0.00 0.00 0
|
||||
ATOM 234 H 1 1 16.403 0.869 34.267 0.00 0.00 0
|
||||
ATOM 235 O 1 1 14.858 10.199 2.754 0.00 0.00 0
|
||||
ATOM 236 H 1 1 13.360 10.712 2.282 0.00 0.00 0
|
||||
ATOM 237 H 1 1 14.560 9.316 4.559 0.00 0.00 0
|
||||
ATOM 238 O 1 1 15.717 8.469 10.739 0.00 0.00 0
|
||||
ATOM 239 H 1 1 17.323 9.581 10.875 0.00 0.00 0
|
||||
ATOM 240 H 1 1 14.574 9.631 10.221 0.00 0.00 0
|
||||
ATOM 241 O 1 1 15.248 10.398 16.525 0.00 0.00 0
|
||||
ATOM 242 H 1 1 16.324 9.181 16.149 0.00 0.00 0
|
||||
ATOM 243 H 1 1 14.172 10.488 15.098 0.00 0.00 0
|
||||
ATOM 244 O 1 1 13.226 8.438 20.801 0.00 0.00 0
|
||||
ATOM 245 H 1 1 14.043 8.996 19.295 0.00 0.00 0
|
||||
ATOM 246 H 1 1 14.661 7.802 22.093 0.00 0.00 0
|
||||
ATOM 247 O 1 1 10.173 10.961 25.875 0.00 0.00 0
|
||||
ATOM 248 H 1 1 11.477 10.223 26.940 0.00 0.00 0
|
||||
ATOM 249 H 1 1 11.269 10.738 24.343 0.00 0.00 0
|
||||
ATOM 250 O 1 1 12.792 7.737 29.173 0.00 0.00 0
|
||||
ATOM 251 H 1 1 12.199 6.038 29.475 0.00 0.00 0
|
||||
ATOM 252 H 1 1 14.427 7.450 29.617 0.00 0.00 0
|
||||
ATOM 253 O 1 1 15.180 19.498 3.578 0.00 0.00 0
|
||||
ATOM 254 H 1 1 14.883 17.596 4.080 0.00 0.00 0
|
||||
ATOM 255 H 1 1 16.754 19.579 2.626 0.00 0.00 0
|
||||
ATOM 256 O 1 1 12.517 11.093 7.701 0.00 0.00 0
|
||||
ATOM 257 H 1 1 12.224 12.778 7.555 0.00 0.00 0
|
||||
ATOM 258 H 1 1 11.150 10.393 7.057 0.00 0.00 0
|
||||
ATOM 259 O 1 1 16.266 16.271 10.758 0.00 0.00 0
|
||||
ATOM 260 H 1 1 16.507 15.795 12.768 0.00 0.00 0
|
||||
ATOM 261 H 1 1 17.725 16.977 10.292 0.00 0.00 0
|
||||
ATOM 262 O 1 1 14.069 18.399 18.897 0.00 0.00 0
|
||||
ATOM 263 H 1 1 15.513 17.523 18.155 0.00 0.00 0
|
||||
ATOM 264 H 1 1 14.958 18.709 20.673 0.00 0.00 0
|
||||
ATOM 265 O 1 1 14.099 15.480 25.510 0.00 0.00 0
|
||||
ATOM 266 H 1 1 13.698 16.872 26.938 0.00 0.00 0
|
||||
ATOM 267 H 1 1 12.567 15.379 24.444 0.00 0.00 0
|
||||
ATOM 268 O 1 1 13.309 17.574 30.292 0.00 0.00 0
|
||||
ATOM 269 H 1 1 14.937 16.934 30.810 0.00 0.00 0
|
||||
ATOM 270 H 1 1 13.969 19.494 30.012 0.00 0.00 0
|
||||
ATOM 271 O 1 1 18.371 23.257 0.925 0.00 0.00 0
|
||||
ATOM 272 H 1 1 19.479 23.480 2.321 0.00 0.00 0
|
||||
ATOM 273 H 1 1 19.087 24.325 -0.369 0.00 0.00 0
|
||||
ATOM 274 O 1 1 12.100 21.730 11.355 0.00 0.00 0
|
||||
ATOM 275 H 1 1 13.141 22.287 12.743 0.00 0.00 0
|
||||
ATOM 276 H 1 1 13.467 22.236 10.244 0.00 0.00 0
|
||||
ATOM 277 O 1 1 12.163 23.290 23.597 0.00 0.00 0
|
||||
ATOM 278 H 1 1 11.324 22.736 24.949 0.00 0.00 0
|
||||
ATOM 279 H 1 1 13.882 22.872 23.840 0.00 0.00 0
|
||||
ATOM 280 O 1 1 20.173 26.761 22.628 0.00 0.00 0
|
||||
ATOM 281 H 1 1 20.206 26.532 20.792 0.00 0.00 0
|
||||
ATOM 282 H 1 1 21.556 25.742 23.389 0.00 0.00 0
|
||||
ATOM 283 O 1 1 16.701 21.165 22.605 0.00 0.00 0
|
||||
ATOM 284 H 1 1 18.028 20.686 23.848 0.00 0.00 0
|
||||
ATOM 285 H 1 1 17.104 22.866 21.949 0.00 0.00 0
|
||||
ATOM 286 O 1 1 11.391 26.461 33.705 0.00 0.00 0
|
||||
ATOM 287 H 1 1 9.841 27.192 34.048 0.00 0.00 0
|
||||
ATOM 288 H 1 1 11.776 25.540 35.243 0.00 0.00 0
|
||||
ATOM 289 O 1 1 9.898 25.989 4.553 0.00 0.00 0
|
||||
ATOM 290 H 1 1 8.902 26.131 6.039 0.00 0.00 0
|
||||
ATOM 291 H 1 1 10.287 27.806 4.376 0.00 0.00 0
|
||||
ATOM 292 O 1 1 14.308 26.960 10.877 0.00 0.00 0
|
||||
ATOM 293 H 1 1 15.302 27.405 12.173 0.00 0.00 0
|
||||
ATOM 294 H 1 1 15.463 26.151 9.633 0.00 0.00 0
|
||||
ATOM 295 O 1 1 13.433 22.960 16.904 0.00 0.00 0
|
||||
ATOM 296 H 1 1 13.409 24.131 18.132 0.00 0.00 0
|
||||
ATOM 297 H 1 1 13.624 21.191 17.520 0.00 0.00 0
|
||||
ATOM 298 O 1 1 16.409 26.768 26.875 0.00 0.00 0
|
||||
ATOM 299 H 1 1 17.590 26.987 25.431 0.00 0.00 0
|
||||
ATOM 300 H 1 1 14.751 27.703 26.230 0.00 0.00 0
|
||||
ATOM 301 O 1 1 14.405 22.733 29.892 0.00 0.00 0
|
||||
ATOM 302 H 1 1 15.423 23.079 28.494 0.00 0.00 0
|
||||
ATOM 303 H 1 1 12.826 23.259 29.416 0.00 0.00 0
|
||||
ATOM 304 O 1 1 6.905 29.408 0.749 0.00 0.00 0
|
||||
ATOM 305 H 1 1 8.428 30.483 1.567 0.00 0.00 0
|
||||
ATOM 306 H 1 1 6.353 30.814 -0.444 0.00 0.00 0
|
||||
ATOM 307 O 1 1 9.189 34.159 6.509 0.00 0.00 0
|
||||
ATOM 308 H 1 1 10.198 34.193 8.002 0.00 0.00 0
|
||||
ATOM 309 H 1 1 9.890 35.692 5.785 0.00 0.00 0
|
||||
ATOM 310 O 1 1 14.256 32.316 9.369 0.00 0.00 0
|
||||
ATOM 311 H 1 1 15.733 32.867 9.486 0.00 0.00 0
|
||||
ATOM 312 H 1 1 14.754 30.670 10.090 0.00 0.00 0
|
||||
ATOM 313 O 1 1 14.714 30.841 16.516 0.00 0.00 0
|
||||
ATOM 314 H 1 1 13.748 29.551 17.279 0.00 0.00 0
|
||||
ATOM 315 H 1 1 13.218 31.933 16.614 0.00 0.00 0
|
||||
ATOM 316 O 1 1 18.409 33.641 20.611 0.00 0.00 0
|
||||
ATOM 317 H 1 1 19.601 32.274 21.115 0.00 0.00 0
|
||||
ATOM 318 H 1 1 17.360 32.655 19.518 0.00 0.00 0
|
||||
ATOM 319 O 1 1 16.062 28.638 32.207 0.00 0.00 0
|
||||
ATOM 320 H 1 1 14.648 27.958 33.253 0.00 0.00 0
|
||||
ATOM 321 H 1 1 15.752 28.014 30.522 0.00 0.00 0
|
||||
ATOM 322 O 1 1 16.200 30.895 1.473 0.00 0.00 0
|
||||
ATOM 323 H 1 1 16.626 29.968 -0.130 0.00 0.00 0
|
||||
ATOM 324 H 1 1 17.167 29.833 2.927 0.00 0.00 0
|
||||
ATOM 325 O 1 1 20.278 3.529 6.048 0.00 0.00 0
|
||||
ATOM 326 H 1 1 20.977 3.611 4.575 0.00 0.00 0
|
||||
ATOM 327 H 1 1 21.312 4.513 7.251 0.00 0.00 0
|
||||
ATOM 328 O 1 1 23.079 5.778 10.408 0.00 0.00 0
|
||||
ATOM 329 H 1 1 24.650 6.259 10.838 0.00 0.00 0
|
||||
ATOM 330 H 1 1 22.342 7.609 10.178 0.00 0.00 0
|
||||
ATOM 331 O 1 1 19.581 2.031 12.110 0.00 0.00 0
|
||||
ATOM 332 H 1 1 19.039 1.082 10.440 0.00 0.00 0
|
||||
ATOM 333 H 1 1 21.141 2.991 11.851 0.00 0.00 0
|
||||
ATOM 334 O 1 1 22.005 3.223 23.178 0.00 0.00 0
|
||||
ATOM 335 H 1 1 21.429 4.090 24.554 0.00 0.00 0
|
||||
ATOM 336 H 1 1 20.654 1.791 22.711 0.00 0.00 0
|
||||
ATOM 337 O 1 1 16.630 6.422 23.792 0.00 0.00 0
|
||||
ATOM 338 H 1 1 16.219 4.804 24.406 0.00 0.00 0
|
||||
ATOM 339 H 1 1 17.066 7.128 25.282 0.00 0.00 0
|
||||
ATOM 340 O 1 1 21.676 5.564 28.158 0.00 0.00 0
|
||||
ATOM 341 H 1 1 20.658 6.717 29.185 0.00 0.00 0
|
||||
ATOM 342 H 1 1 23.413 5.828 28.996 0.00 0.00 0
|
||||
ATOM 343 O 1 1 15.257 5.265 5.626 0.00 0.00 0
|
||||
ATOM 344 H 1 1 16.914 4.519 5.490 0.00 0.00 0
|
||||
ATOM 345 H 1 1 15.144 6.150 6.972 0.00 0.00 0
|
||||
ATOM 346 O 1 1 20.137 11.082 10.437 0.00 0.00 0
|
||||
ATOM 347 H 1 1 20.021 10.947 8.733 0.00 0.00 0
|
||||
ATOM 348 H 1 1 21.025 12.555 10.853 0.00 0.00 0
|
||||
ATOM 349 O 1 1 23.089 14.627 12.437 0.00 0.00 0
|
||||
ATOM 350 H 1 1 24.716 15.254 12.736 0.00 0.00 0
|
||||
ATOM 351 H 1 1 23.284 13.228 13.653 0.00 0.00 0
|
||||
ATOM 352 O 1 1 24.083 12.649 22.566 0.00 0.00 0
|
||||
ATOM 353 H 1 1 22.397 12.663 23.042 0.00 0.00 0
|
||||
ATOM 354 H 1 1 24.901 13.851 23.565 0.00 0.00 0
|
||||
ATOM 355 O 1 1 17.865 7.909 30.036 0.00 0.00 0
|
||||
ATOM 356 H 1 1 17.509 8.045 31.982 0.00 0.00 0
|
||||
ATOM 357 H 1 1 18.078 9.582 29.318 0.00 0.00 0
|
||||
ATOM 358 O 1 1 18.824 8.486 0.104 0.00 0.00 0
|
||||
ATOM 359 H 1 1 19.997 10.191 -0.057 0.00 0.00 0
|
||||
ATOM 360 H 1 1 17.077 8.998 0.779 0.00 0.00 0
|
||||
ATOM 361 O 1 1 20.122 9.143 5.343 0.00 0.00 0
|
||||
ATOM 362 H 1 1 19.373 8.819 3.821 0.00 0.00 0
|
||||
ATOM 363 H 1 1 21.998 8.776 5.128 0.00 0.00 0
|
||||
ATOM 364 O 1 1 16.413 14.459 5.855 0.00 0.00 0
|
||||
ATOM 365 H 1 1 15.536 13.007 5.239 0.00 0.00 0
|
||||
ATOM 366 H 1 1 16.006 14.725 7.737 0.00 0.00 0
|
||||
ATOM 367 O 1 1 17.561 15.066 15.654 0.00 0.00 0
|
||||
ATOM 368 H 1 1 17.575 13.398 16.055 0.00 0.00 0
|
||||
ATOM 369 H 1 1 18.978 15.828 16.400 0.00 0.00 0
|
||||
ATOM 370 O 1 1 26.374 17.047 24.817 0.00 0.00 0
|
||||
ATOM 371 H 1 1 27.983 17.098 25.632 0.00 0.00 0
|
||||
ATOM 372 H 1 1 25.629 18.751 24.919 0.00 0.00 0
|
||||
ATOM 373 O 1 1 19.784 12.960 28.706 0.00 0.00 0
|
||||
ATOM 374 H 1 1 21.662 13.055 28.871 0.00 0.00 0
|
||||
ATOM 375 H 1 1 19.545 14.070 27.143 0.00 0.00 0
|
||||
ATOM 376 O 1 1 17.891 16.733 32.499 0.00 0.00 0
|
||||
ATOM 377 H 1 1 18.327 15.240 31.277 0.00 0.00 0
|
||||
ATOM 378 H 1 1 18.633 18.335 31.693 0.00 0.00 0
|
||||
ATOM 379 O 1 1 23.733 23.024 1.663 0.00 0.00 0
|
||||
ATOM 380 H 1 1 24.800 24.052 2.776 0.00 0.00 0
|
||||
ATOM 381 H 1 1 24.693 22.618 0.198 0.00 0.00 0
|
||||
ATOM 382 O 1 1 20.789 18.440 9.443 0.00 0.00 0
|
||||
ATOM 383 H 1 1 20.766 17.257 7.881 0.00 0.00 0
|
||||
ATOM 384 H 1 1 21.896 17.345 10.385 0.00 0.00 0
|
||||
ATOM 385 O 1 1 21.574 17.493 17.838 0.00 0.00 0
|
||||
ATOM 386 H 1 1 20.597 18.955 17.218 0.00 0.00 0
|
||||
ATOM 387 H 1 1 22.538 16.874 16.251 0.00 0.00 0
|
||||
ATOM 388 O 1 1 19.168 14.748 24.131 0.00 0.00 0
|
||||
ATOM 389 H 1 1 19.711 16.390 23.712 0.00 0.00 0
|
||||
ATOM 390 H 1 1 17.429 14.695 24.403 0.00 0.00 0
|
||||
ATOM 391 O 1 1 22.149 20.198 24.977 0.00 0.00 0
|
||||
ATOM 392 H 1 1 21.639 20.924 26.486 0.00 0.00 0
|
||||
ATOM 393 H 1 1 22.656 21.657 24.411 0.00 0.00 0
|
||||
ATOM 394 O 1 1 20.565 20.792 29.600 0.00 0.00 0
|
||||
ATOM 395 H 1 1 22.264 20.409 30.214 0.00 0.00 0
|
||||
ATOM 396 H 1 1 20.548 22.408 30.597 0.00 0.00 0
|
||||
ATOM 397 O 1 1 20.802 26.547 9.615 0.00 0.00 0
|
||||
ATOM 398 H 1 1 20.099 27.984 8.338 0.00 0.00 0
|
||||
ATOM 399 H 1 1 21.277 27.539 11.325 0.00 0.00 0
|
||||
ATOM 400 O 1 1 16.283 23.589 7.779 0.00 0.00 0
|
||||
ATOM 401 H 1 1 16.093 21.973 6.712 0.00 0.00 0
|
||||
ATOM 402 H 1 1 17.901 22.971 8.154 0.00 0.00 0
|
||||
ATOM 403 O 1 1 18.469 29.798 13.568 0.00 0.00 0
|
||||
ATOM 404 H 1 1 19.712 31.216 13.506 0.00 0.00 0
|
||||
ATOM 405 H 1 1 16.872 30.343 14.396 0.00 0.00 0
|
||||
ATOM 406 O 1 1 18.790 21.712 16.060 0.00 0.00 0
|
||||
ATOM 407 H 1 1 19.878 23.090 16.485 0.00 0.00 0
|
||||
ATOM 408 H 1 1 17.201 22.326 15.819 0.00 0.00 0
|
||||
ATOM 409 O 1 1 21.747 26.084 16.349 0.00 0.00 0
|
||||
ATOM 410 H 1 1 20.783 27.021 15.300 0.00 0.00 0
|
||||
ATOM 411 H 1 1 22.705 27.328 17.206 0.00 0.00 0
|
||||
ATOM 412 O 1 1 20.769 26.211 32.050 0.00 0.00 0
|
||||
ATOM 413 H 1 1 21.488 27.404 33.328 0.00 0.00 0
|
||||
ATOM 414 H 1 1 18.989 26.710 32.145 0.00 0.00 0
|
||||
ATOM 415 O 1 1 19.820 29.181 5.559 0.00 0.00 0
|
||||
ATOM 416 H 1 1 20.991 29.509 4.109 0.00 0.00 0
|
||||
ATOM 417 H 1 1 19.431 31.018 6.221 0.00 0.00 0
|
||||
ATOM 418 O 1 1 19.240 33.867 7.993 0.00 0.00 0
|
||||
ATOM 419 H 1 1 19.107 35.039 6.604 0.00 0.00 0
|
||||
ATOM 420 H 1 1 20.697 33.671 9.063 0.00 0.00 0
|
||||
ATOM 421 O 1 1 22.511 34.976 15.793 0.00 0.00 0
|
||||
ATOM 422 H 1 1 23.716 36.163 16.603 0.00 0.00 0
|
||||
ATOM 423 H 1 1 21.699 36.150 14.467 0.00 0.00 0
|
||||
ATOM 424 O 1 1 22.622 30.284 19.069 0.00 0.00 0
|
||||
ATOM 425 H 1 1 22.049 31.351 17.725 0.00 0.00 0
|
||||
ATOM 426 H 1 1 24.411 30.773 19.576 0.00 0.00 0
|
||||
ATOM 427 O 1 1 18.639 33.611 28.369 0.00 0.00 0
|
||||
ATOM 428 H 1 1 18.226 32.159 29.103 0.00 0.00 0
|
||||
ATOM 429 H 1 1 19.906 33.008 27.158 0.00 0.00 0
|
||||
ATOM 430 O 1 1 22.520 1.325 31.926 0.00 0.00 0
|
||||
ATOM 431 H 1 1 22.803 2.668 30.796 0.00 0.00 0
|
||||
ATOM 432 H 1 1 21.045 0.425 31.122 0.00 0.00 0
|
||||
ATOM 433 O 1 1 21.754 3.789 1.159 0.00 0.00 0
|
||||
ATOM 434 H 1 1 22.085 2.785 -0.180 0.00 0.00 0
|
||||
ATOM 435 H 1 1 20.850 5.175 0.610 0.00 0.00 0
|
||||
ATOM 436 O 1 1 28.457 5.539 12.133 0.00 0.00 0
|
||||
ATOM 437 H 1 1 29.489 4.390 11.182 0.00 0.00 0
|
||||
ATOM 438 H 1 1 29.161 7.131 12.587 0.00 0.00 0
|
||||
ATOM 439 O 1 1 22.495 5.966 17.324 0.00 0.00 0
|
||||
ATOM 440 H 1 1 24.377 5.379 17.393 0.00 0.00 0
|
||||
ATOM 441 H 1 1 21.906 5.491 18.857 0.00 0.00 0
|
||||
ATOM 442 O 1 1 28.128 3.304 22.287 0.00 0.00 0
|
||||
ATOM 443 H 1 1 28.123 2.999 20.491 0.00 0.00 0
|
||||
ATOM 444 H 1 1 26.533 3.355 22.876 0.00 0.00 0
|
||||
ATOM 445 O 1 1 28.378 10.455 27.266 0.00 0.00 0
|
||||
ATOM 446 H 1 1 30.019 10.292 28.051 0.00 0.00 0
|
||||
ATOM 447 H 1 1 28.635 10.039 25.463 0.00 0.00 0
|
||||
ATOM 448 O 1 1 27.031 8.353 34.806 0.00 0.00 0
|
||||
ATOM 449 H 1 1 26.116 9.984 34.571 0.00 0.00 0
|
||||
ATOM 450 H 1 1 28.685 8.951 34.739 0.00 0.00 0
|
||||
ATOM 451 O 1 1 24.951 8.160 4.454 0.00 0.00 0
|
||||
ATOM 452 H 1 1 25.930 9.616 5.160 0.00 0.00 0
|
||||
ATOM 453 H 1 1 25.947 7.994 2.724 0.00 0.00 0
|
||||
ATOM 454 O 1 1 26.937 12.436 6.869 0.00 0.00 0
|
||||
ATOM 455 H 1 1 25.492 13.284 6.708 0.00 0.00 0
|
||||
ATOM 456 H 1 1 27.689 13.332 8.266 0.00 0.00 0
|
||||
ATOM 457 O 1 1 23.365 11.214 16.933 0.00 0.00 0
|
||||
ATOM 458 H 1 1 22.247 9.744 16.789 0.00 0.00 0
|
||||
ATOM 459 H 1 1 23.264 12.035 18.539 0.00 0.00 0
|
||||
ATOM 460 O 1 1 28.321 8.759 22.158 0.00 0.00 0
|
||||
ATOM 461 H 1 1 27.662 6.895 22.482 0.00 0.00 0
|
||||
ATOM 462 H 1 1 26.971 9.710 21.902 0.00 0.00 0
|
||||
ATOM 463 O 1 1 27.071 6.109 29.555 0.00 0.00 0
|
||||
ATOM 464 H 1 1 27.591 7.663 28.857 0.00 0.00 0
|
||||
ATOM 465 H 1 1 27.304 6.320 31.261 0.00 0.00 0
|
||||
ATOM 466 O 1 1 22.474 11.704 34.640 0.00 0.00 0
|
||||
ATOM 467 H 1 1 22.752 13.304 35.584 0.00 0.00 0
|
||||
ATOM 468 H 1 1 22.840 12.090 33.030 0.00 0.00 0
|
||||
ATOM 469 O 1 1 21.656 14.971 5.615 0.00 0.00 0
|
||||
ATOM 470 H 1 1 21.690 15.860 3.977 0.00 0.00 0
|
||||
ATOM 471 H 1 1 19.964 14.225 5.774 0.00 0.00 0
|
||||
ATOM 472 O 1 1 28.539 21.492 9.820 0.00 0.00 0
|
||||
ATOM 473 H 1 1 27.288 22.181 8.688 0.00 0.00 0
|
||||
ATOM 474 H 1 1 28.065 22.420 11.602 0.00 0.00 0
|
||||
ATOM 475 O 1 1 28.364 16.020 11.109 0.00 0.00 0
|
||||
ATOM 476 H 1 1 30.033 16.649 12.089 0.00 0.00 0
|
||||
ATOM 477 H 1 1 28.456 17.440 10.082 0.00 0.00 0
|
||||
ATOM 478 O 1 1 0.054 13.686 18.103 0.00 0.00 0
|
||||
ATOM 479 H 1 1 -1.714 12.928 18.841 0.00 0.00 0
|
||||
ATOM 480 H 1 1 1.008 12.429 17.383 0.00 0.00 0
|
||||
ATOM 481 O 1 1 24.636 12.894 29.957 0.00 0.00 0
|
||||
ATOM 482 H 1 1 25.906 13.914 31.183 0.00 0.00 0
|
||||
ATOM 483 H 1 1 25.641 11.609 29.162 0.00 0.00 0
|
||||
ATOM 484 O 1 1 21.548 17.250 0.749 0.00 0.00 0
|
||||
ATOM 485 H 1 1 21.843 19.026 0.905 0.00 0.00 0
|
||||
ATOM 486 H 1 1 20.385 16.716 -0.697 0.00 0.00 0
|
||||
ATOM 487 O 1 1 26.095 27.274 4.520 0.00 0.00 0
|
||||
ATOM 488 H 1 1 27.889 26.458 4.505 0.00 0.00 0
|
||||
ATOM 489 H 1 1 25.648 26.970 6.165 0.00 0.00 0
|
||||
ATOM 490 O 1 1 23.610 22.515 8.008 0.00 0.00 0
|
||||
ATOM 491 H 1 1 22.653 21.187 8.739 0.00 0.00 0
|
||||
ATOM 492 H 1 1 22.286 24.095 8.444 0.00 0.00 0
|
||||
ATOM 493 O 1 1 27.355 18.929 18.180 0.00 0.00 0
|
||||
ATOM 494 H 1 1 27.200 20.349 17.155 0.00 0.00 0
|
||||
ATOM 495 H 1 1 25.579 18.322 18.770 0.00 0.00 0
|
||||
ATOM 496 O 1 1 26.765 23.633 14.444 0.00 0.00 0
|
||||
ATOM 497 H 1 1 27.441 25.298 13.651 0.00 0.00 0
|
||||
ATOM 498 H 1 1 25.086 24.256 14.749 0.00 0.00 0
|
||||
ATOM 499 O 1 1 31.478 20.769 20.986 0.00 0.00 0
|
||||
ATOM 500 H 1 1 30.440 22.509 21.135 0.00 0.00 0
|
||||
ATOM 501 H 1 1 30.567 19.656 20.043 0.00 0.00 0
|
||||
ATOM 502 O 1 1 24.812 20.412 32.668 0.00 0.00 0
|
||||
ATOM 503 H 1 1 26.242 21.478 31.874 0.00 0.00 0
|
||||
ATOM 504 H 1 1 25.787 19.023 33.158 0.00 0.00 0
|
||||
ATOM 505 O 1 1 22.105 29.076 0.928 0.00 0.00 0
|
||||
ATOM 506 H 1 1 23.296 27.923 1.739 0.00 0.00 0
|
||||
ATOM 507 H 1 1 22.623 30.994 0.882 0.00 0.00 0
|
||||
ATOM 508 O 1 1 29.572 31.256 8.626 0.00 0.00 0
|
||||
ATOM 509 H 1 1 30.795 30.203 7.736 0.00 0.00 0
|
||||
ATOM 510 H 1 1 28.277 31.519 7.260 0.00 0.00 0
|
||||
ATOM 511 O 1 1 31.817 34.843 18.283 0.00 0.00 0
|
||||
ATOM 512 H 1 1 32.438 34.389 16.474 0.00 0.00 0
|
||||
ATOM 513 H 1 1 32.743 36.422 18.341 0.00 0.00 0
|
||||
ATOM 514 O 1 1 27.915 25.601 19.033 0.00 0.00 0
|
||||
ATOM 515 H 1 1 29.358 26.561 19.190 0.00 0.00 0
|
||||
ATOM 516 H 1 1 28.148 24.429 17.530 0.00 0.00 0
|
||||
ATOM 517 O 1 1 24.548 24.654 24.025 0.00 0.00 0
|
||||
ATOM 518 H 1 1 25.528 25.635 22.824 0.00 0.00 0
|
||||
ATOM 519 H 1 1 25.300 25.200 25.645 0.00 0.00 0
|
||||
ATOM 520 O 1 1 28.540 22.922 30.370 0.00 0.00 0
|
||||
ATOM 521 H 1 1 27.414 24.096 29.781 0.00 0.00 0
|
||||
ATOM 522 H 1 1 29.674 23.914 31.873 0.00 0.00 0
|
||||
ATOM 523 O 1 1 24.969 33.623 1.014 0.00 0.00 0
|
||||
ATOM 524 H 1 1 26.521 33.058 1.518 0.00 0.00 0
|
||||
ATOM 525 H 1 1 24.990 34.322 -0.683 0.00 0.00 0
|
||||
ATOM 526 O 1 1 23.075 32.171 11.324 0.00 0.00 0
|
||||
ATOM 527 H 1 1 23.316 32.775 13.097 0.00 0.00 0
|
||||
ATOM 528 H 1 1 24.460 33.203 10.662 0.00 0.00 0
|
||||
ATOM 529 O 1 1 27.497 2.736 17.224 0.00 0.00 0
|
||||
ATOM 530 H 1 1 28.397 3.415 15.715 0.00 0.00 0
|
||||
ATOM 531 H 1 1 28.234 1.233 17.412 0.00 0.00 0
|
||||
ATOM 532 O 1 1 26.369 33.060 22.077 0.00 0.00 0
|
||||
ATOM 533 H 1 1 26.170 34.746 22.264 0.00 0.00 0
|
||||
ATOM 534 H 1 1 27.592 32.404 23.321 0.00 0.00 0
|
||||
ATOM 535 O 1 1 30.221 30.950 25.843 0.00 0.00 0
|
||||
ATOM 536 H 1 1 30.305 29.038 26.208 0.00 0.00 0
|
||||
ATOM 537 H 1 1 30.363 31.979 27.414 0.00 0.00 0
|
||||
ATOM 538 O 1 1 24.973 26.732 28.607 0.00 0.00 0
|
||||
ATOM 539 H 1 1 25.385 28.369 29.248 0.00 0.00 0
|
||||
ATOM 540 H 1 1 23.330 26.597 29.234 0.00 0.00 0
|
||||
ATOM 541 O 1 1 32.165 4.857 2.258 0.00 0.00 0
|
||||
ATOM 542 H 1 1 32.417 6.195 1.157 0.00 0.00 0
|
||||
ATOM 543 H 1 1 32.615 3.727 1.112 0.00 0.00 0
|
||||
ATOM 544 O 1 1 28.067 3.533 5.217 0.00 0.00 0
|
||||
ATOM 545 H 1 1 26.960 4.447 4.158 0.00 0.00 0
|
||||
ATOM 546 H 1 1 29.875 3.863 4.448 0.00 0.00 0
|
||||
ATOM 547 O 1 1 33.279 2.782 13.028 0.00 0.00 0
|
||||
ATOM 548 H 1 1 33.708 3.955 11.817 0.00 0.00 0
|
||||
ATOM 549 H 1 1 33.656 3.545 14.631 0.00 0.00 0
|
||||
ATOM 550 O 1 1 34.278 4.944 17.492 0.00 0.00 0
|
||||
ATOM 551 H 1 1 33.438 6.563 17.876 0.00 0.00 0
|
||||
ATOM 552 H 1 1 34.906 4.452 18.995 0.00 0.00 0
|
||||
ATOM 553 O 1 1 32.363 1.908 26.092 0.00 0.00 0
|
||||
ATOM 554 H 1 1 31.941 1.683 24.268 0.00 0.00 0
|
||||
ATOM 555 H 1 1 33.850 1.390 26.904 0.00 0.00 0
|
||||
ATOM 556 O 1 1 27.982 0.418 28.241 0.00 0.00 0
|
||||
ATOM 557 H 1 1 27.516 2.080 28.309 0.00 0.00 0
|
||||
ATOM 558 H 1 1 29.593 0.176 27.299 0.00 0.00 0
|
||||
ATOM 559 O 1 1 28.845 14.672 2.724 0.00 0.00 0
|
||||
ATOM 560 H 1 1 27.963 13.930 4.139 0.00 0.00 0
|
||||
ATOM 561 H 1 1 30.386 15.714 3.379 0.00 0.00 0
|
||||
ATOM 562 O 1 1 28.083 10.618 14.298 0.00 0.00 0
|
||||
ATOM 563 H 1 1 28.623 12.160 13.293 0.00 0.00 0
|
||||
ATOM 564 H 1 1 26.486 11.015 15.379 0.00 0.00 0
|
||||
ATOM 565 O 1 1 33.867 10.545 13.306 0.00 0.00 0
|
||||
ATOM 566 H 1 1 35.165 9.612 13.810 0.00 0.00 0
|
||||
ATOM 567 H 1 1 33.615 10.270 11.513 0.00 0.00 0
|
||||
ATOM 568 O 1 1 31.790 9.696 18.223 0.00 0.00 0
|
||||
ATOM 569 H 1 1 30.484 9.334 19.421 0.00 0.00 0
|
||||
ATOM 570 H 1 1 30.834 10.096 16.929 0.00 0.00 0
|
||||
ATOM 571 O 1 1 30.141 15.006 21.532 0.00 0.00 0
|
||||
ATOM 572 H 1 1 28.565 15.594 22.099 0.00 0.00 0
|
||||
ATOM 573 H 1 1 30.942 14.253 23.077 0.00 0.00 0
|
||||
ATOM 574 O 1 1 32.798 10.732 30.680 0.00 0.00 0
|
||||
ATOM 575 H 1 1 34.073 9.528 30.799 0.00 0.00 0
|
||||
ATOM 576 H 1 1 32.991 11.512 28.983 0.00 0.00 0
|
||||
ATOM 577 O 1 1 33.652 16.265 5.086 0.00 0.00 0
|
||||
ATOM 578 H 1 1 35.399 16.239 4.730 0.00 0.00 0
|
||||
ATOM 579 H 1 1 33.503 17.939 5.631 0.00 0.00 0
|
||||
ATOM 580 O 1 1 31.947 10.799 7.943 0.00 0.00 0
|
||||
ATOM 581 H 1 1 29.894 10.549 7.619 0.00 0.00 0
|
||||
ATOM 582 H 1 1 32.271 12.414 7.075 0.00 0.00 0
|
||||
ATOM 583 O 1 1 0.329 15.516 11.746 0.00 0.00 0
|
||||
ATOM 584 H 1 1 -0.446 14.249 12.939 0.00 0.00 0
|
||||
ATOM 585 H 1 1 -0.685 17.018 11.935 0.00 0.00 0
|
||||
ATOM 586 O 1 1 4.262 19.165 14.308 0.00 0.00 0
|
||||
ATOM 587 H 1 1 3.579 17.691 14.920 0.00 0.00 0
|
||||
ATOM 588 H 1 1 5.723 19.183 15.204 0.00 0.00 0
|
||||
ATOM 589 O 1 1 32.995 13.546 25.948 0.00 0.00 0
|
||||
ATOM 590 H 1 1 32.167 15.060 26.787 0.00 0.00 0
|
||||
ATOM 591 H 1 1 34.425 13.800 25.007 0.00 0.00 0
|
||||
ATOM 592 O 1 1 1.773 13.524 34.037 0.00 0.00 0
|
||||
ATOM 593 H 1 1 0.227 14.409 33.446 0.00 0.00 0
|
||||
ATOM 594 H 1 1 2.167 14.670 35.511 0.00 0.00 0
|
||||
ATOM 595 O 1 1 33.029 20.529 7.247 0.00 0.00 0
|
||||
ATOM 596 H 1 1 34.388 21.414 8.003 0.00 0.00 0
|
||||
ATOM 597 H 1 1 31.451 20.831 8.182 0.00 0.00 0
|
||||
ATOM 598 O 1 1 2.037 24.250 10.251 0.00 0.00 0
|
||||
ATOM 599 H 1 1 3.743 25.008 9.876 0.00 0.00 0
|
||||
ATOM 600 H 1 1 1.894 25.043 11.903 0.00 0.00 0
|
||||
ATOM 601 O 1 1 32.753 19.259 13.976 0.00 0.00 0
|
||||
ATOM 602 H 1 1 32.792 20.886 13.792 0.00 0.00 0
|
||||
ATOM 603 H 1 1 34.334 18.799 14.976 0.00 0.00 0
|
||||
ATOM 604 O 1 1 0.396 18.673 18.699 0.00 0.00 0
|
||||
ATOM 605 H 1 1 -1.211 18.950 19.127 0.00 0.00 0
|
||||
ATOM 606 H 1 1 0.469 16.977 18.436 0.00 0.00 0
|
||||
ATOM 607 O 1 1 30.855 18.370 27.959 0.00 0.00 0
|
||||
ATOM 608 H 1 1 29.759 19.681 28.690 0.00 0.00 0
|
||||
ATOM 609 H 1 1 32.103 19.477 26.763 0.00 0.00 0
|
||||
ATOM 610 O 1 1 27.723 15.992 33.091 0.00 0.00 0
|
||||
ATOM 611 H 1 1 29.390 16.423 32.192 0.00 0.00 0
|
||||
ATOM 612 H 1 1 27.801 15.859 34.804 0.00 0.00 0
|
||||
ATOM 613 O 1 1 31.068 27.895 3.348 0.00 0.00 0
|
||||
ATOM 614 H 1 1 32.517 27.825 4.610 0.00 0.00 0
|
||||
ATOM 615 H 1 1 31.529 29.459 2.324 0.00 0.00 0
|
||||
ATOM 616 O 1 1 35.039 28.008 6.663 0.00 0.00 0
|
||||
ATOM 617 H 1 1 35.966 26.934 7.683 0.00 0.00 0
|
||||
ATOM 618 H 1 1 36.055 28.336 5.336 0.00 0.00 0
|
||||
ATOM 619 O 1 1 29.356 28.196 13.025 0.00 0.00 0
|
||||
ATOM 620 H 1 1 29.210 29.335 14.589 0.00 0.00 0
|
||||
ATOM 621 H 1 1 28.874 29.629 11.867 0.00 0.00 0
|
||||
ATOM 622 O 1 1 32.386 28.434 18.961 0.00 0.00 0
|
||||
ATOM 623 H 1 1 33.368 28.574 20.411 0.00 0.00 0
|
||||
ATOM 624 H 1 1 33.410 27.406 17.949 0.00 0.00 0
|
||||
ATOM 625 O 1 1 30.898 25.390 25.799 0.00 0.00 0
|
||||
ATOM 626 H 1 1 32.369 25.913 24.580 0.00 0.00 0
|
||||
ATOM 627 H 1 1 31.317 24.075 27.029 0.00 0.00 0
|
||||
ATOM 628 O 1 1 32.259 25.611 33.104 0.00 0.00 0
|
||||
ATOM 629 H 1 1 32.238 25.736 34.806 0.00 0.00 0
|
||||
ATOM 630 H 1 1 33.920 25.042 32.775 0.00 0.00 0
|
||||
ATOM 631 O 1 1 30.290 32.645 1.341 0.00 0.00 0
|
||||
ATOM 632 H 1 1 29.949 32.793 -0.430 0.00 0.00 0
|
||||
ATOM 633 H 1 1 31.762 33.340 1.847 0.00 0.00 0
|
||||
ATOM 634 O 1 1 25.536 34.235 6.469 0.00 0.00 0
|
||||
ATOM 635 H 1 1 25.716 36.059 6.651 0.00 0.00 0
|
||||
ATOM 636 H 1 1 25.283 33.866 4.895 0.00 0.00 0
|
||||
ATOM 637 O 1 1 31.674 33.161 13.106 0.00 0.00 0
|
||||
ATOM 638 H 1 1 31.793 34.863 13.281 0.00 0.00 0
|
||||
ATOM 639 H 1 1 30.425 32.928 11.783 0.00 0.00 0
|
||||
ATOM 640 O 1 1 33.844 32.668 22.296 0.00 0.00 0
|
||||
ATOM 641 H 1 1 32.750 32.234 23.524 0.00 0.00 0
|
||||
ATOM 642 H 1 1 32.917 32.875 20.736 0.00 0.00 0
|
||||
ATOM 643 O 1 1 31.603 30.542 30.805 0.00 0.00 0
|
||||
ATOM 644 H 1 1 33.451 30.804 30.468 0.00 0.00 0
|
||||
ATOM 645 H 1 1 31.575 28.816 31.756 0.00 0.00 0
|
||||
ATOM 646 O 1 1 26.295 31.235 30.599 0.00 0.00 0
|
||||
ATOM 647 H 1 1 27.834 30.515 30.607 0.00 0.00 0
|
||||
ATOM 648 H 1 1 26.362 32.920 29.856 0.00 0.00 0
|
||||
END
|
||||
@ -1,6 +0,0 @@
|
||||
-- Example with the rudimentary PH2 code --
|
||||
|
||||
* This gives an example of para-H2 with the isotropic Silvera-Goldman
|
||||
pair potential, as discussed in the tutorial section of the user manual.
|
||||
Please refer to this section for more detailed instructions
|
||||
on how to run this example.
|
||||
@ -1,111 +0,0 @@
|
||||
TITLE Traj: positions{angstrom} Step: 0 Bead: 1
|
||||
CRYST1 17.847 17.847 17.847 90.00 90.00 90.00 P 1 1
|
||||
ATOM 1 H2 1 1 0.147 0.132 0.114 0.00 0.00 0
|
||||
ATOM 2 H2 1 1 -0.125 2.943 3.188 0.00 0.00 0
|
||||
ATOM 3 H2 1 1 3.042 2.937 0.107 0.00 0.00 0
|
||||
ATOM 4 H2 1 1 2.976 -0.148 2.960 0.00 0.00 0
|
||||
ATOM 5 H2 1 1 -0.229 -0.030 5.923 0.00 0.00 0
|
||||
ATOM 6 H2 1 1 0.094 2.999 8.915 0.00 0.00 0
|
||||
ATOM 7 H2 1 1 2.954 2.895 5.910 0.00 0.00 0
|
||||
ATOM 8 H2 1 1 2.892 -0.155 8.870 0.00 0.00 0
|
||||
ATOM 9 H2 1 1 -0.048 0.087 11.901 0.00 0.00 0
|
||||
ATOM 10 H2 1 1 0.017 2.947 14.955 0.00 0.00 0
|
||||
ATOM 11 H2 1 1 2.979 2.989 11.875 0.00 0.00 0
|
||||
ATOM 12 H2 1 1 2.976 0.114 14.794 0.00 0.00 0
|
||||
ATOM 13 H2 1 1 -0.053 5.852 -0.165 0.00 0.00 0
|
||||
ATOM 14 H2 1 1 0.006 8.858 3.040 0.00 0.00 0
|
||||
ATOM 15 H2 1 1 3.041 8.951 -0.096 0.00 0.00 0
|
||||
ATOM 16 H2 1 1 3.007 5.879 2.876 0.00 0.00 0
|
||||
ATOM 17 H2 1 1 0.057 5.910 6.036 0.00 0.00 0
|
||||
ATOM 18 H2 1 1 -0.097 8.867 8.804 0.00 0.00 0
|
||||
ATOM 19 H2 1 1 2.832 8.766 5.719 0.00 0.00 0
|
||||
ATOM 20 H2 1 1 3.148 5.956 8.964 0.00 0.00 0
|
||||
ATOM 21 H2 1 1 0.031 5.974 11.932 0.00 0.00 0
|
||||
ATOM 22 H2 1 1 0.124 8.972 14.723 0.00 0.00 0
|
||||
ATOM 23 H2 1 1 2.998 8.861 11.952 0.00 0.00 0
|
||||
ATOM 24 H2 1 1 2.971 5.943 14.914 0.00 0.00 0
|
||||
ATOM 25 H2 1 1 0.009 11.770 0.089 0.00 0.00 0
|
||||
ATOM 26 H2 1 1 0.015 14.931 2.992 0.00 0.00 0
|
||||
ATOM 27 H2 1 1 2.924 14.889 0.062 0.00 0.00 0
|
||||
ATOM 28 H2 1 1 2.832 11.918 3.162 0.00 0.00 0
|
||||
ATOM 29 H2 1 1 -0.097 11.885 6.105 0.00 0.00 0
|
||||
ATOM 30 H2 1 1 0.169 14.731 8.889 0.00 0.00 0
|
||||
ATOM 31 H2 1 1 2.877 14.750 5.921 0.00 0.00 0
|
||||
ATOM 32 H2 1 1 3.078 12.038 8.936 0.00 0.00 0
|
||||
ATOM 33 H2 1 1 0.019 12.011 11.885 0.00 0.00 0
|
||||
ATOM 34 H2 1 1 0.139 14.848 14.841 0.00 0.00 0
|
||||
ATOM 35 H2 1 1 2.904 14.835 12.020 0.00 0.00 0
|
||||
ATOM 36 H2 1 1 3.083 12.013 14.942 0.00 0.00 0
|
||||
ATOM 37 H2 1 1 6.042 0.051 -0.122 0.00 0.00 0
|
||||
ATOM 38 H2 1 1 5.911 2.957 2.811 0.00 0.00 0
|
||||
ATOM 39 H2 1 1 8.949 3.111 0.013 0.00 0.00 0
|
||||
ATOM 40 H2 1 1 8.991 -0.010 2.794 0.00 0.00 0
|
||||
ATOM 41 H2 1 1 6.061 0.042 6.018 0.00 0.00 0
|
||||
ATOM 42 H2 1 1 6.156 3.002 8.708 0.00 0.00 0
|
||||
ATOM 43 H2 1 1 8.922 3.069 5.909 0.00 0.00 0
|
||||
ATOM 44 H2 1 1 8.988 0.132 9.006 0.00 0.00 0
|
||||
ATOM 45 H2 1 1 5.916 0.157 11.936 0.00 0.00 0
|
||||
ATOM 46 H2 1 1 6.011 2.841 14.909 0.00 0.00 0
|
||||
ATOM 47 H2 1 1 8.974 2.990 11.906 0.00 0.00 0
|
||||
ATOM 48 H2 1 1 8.946 -0.012 14.762 0.00 0.00 0
|
||||
ATOM 49 H2 1 1 5.871 5.856 -0.119 0.00 0.00 0
|
||||
ATOM 50 H2 1 1 6.164 8.843 3.017 0.00 0.00 0
|
||||
ATOM 51 H2 1 1 9.193 8.762 0.076 0.00 0.00 0
|
||||
ATOM 52 H2 1 1 8.834 5.965 2.835 0.00 0.00 0
|
||||
ATOM 53 H2 1 1 5.987 6.003 5.941 0.00 0.00 0
|
||||
ATOM 54 H2 1 1 5.977 8.974 8.839 0.00 0.00 0
|
||||
ATOM 55 H2 1 1 9.025 8.846 6.022 0.00 0.00 0
|
||||
ATOM 56 H2 1 1 8.848 5.694 9.143 0.00 0.00 0
|
||||
ATOM 57 H2 1 1 5.924 6.032 11.865 0.00 0.00 0
|
||||
ATOM 58 H2 1 1 6.019 8.827 14.866 0.00 0.00 0
|
||||
ATOM 59 H2 1 1 8.835 9.076 11.941 0.00 0.00 0
|
||||
ATOM 60 H2 1 1 8.891 6.039 14.895 0.00 0.00 0
|
||||
ATOM 61 H2 1 1 5.856 11.998 0.105 0.00 0.00 0
|
||||
ATOM 62 H2 1 1 5.828 14.783 2.903 0.00 0.00 0
|
||||
ATOM 63 H2 1 1 8.942 14.899 -0.042 0.00 0.00 0
|
||||
ATOM 64 H2 1 1 8.930 11.966 3.015 0.00 0.00 0
|
||||
ATOM 65 H2 1 1 6.073 11.865 5.912 0.00 0.00 0
|
||||
ATOM 66 H2 1 1 6.031 14.891 8.979 0.00 0.00 0
|
||||
ATOM 67 H2 1 1 8.972 14.858 5.883 0.00 0.00 0
|
||||
ATOM 68 H2 1 1 8.957 11.835 8.967 0.00 0.00 0
|
||||
ATOM 69 H2 1 1 5.966 11.882 12.044 0.00 0.00 0
|
||||
ATOM 70 H2 1 1 5.947 14.705 14.774 0.00 0.00 0
|
||||
ATOM 71 H2 1 1 8.876 14.853 11.951 0.00 0.00 0
|
||||
ATOM 72 H2 1 1 8.992 11.917 14.929 0.00 0.00 0
|
||||
ATOM 73 H2 1 1 11.946 0.088 -0.028 0.00 0.00 0
|
||||
ATOM 74 H2 1 1 11.829 3.081 3.117 0.00 0.00 0
|
||||
ATOM 75 H2 1 1 15.004 3.033 -0.008 0.00 0.00 0
|
||||
ATOM 76 H2 1 1 14.828 0.120 3.029 0.00 0.00 0
|
||||
ATOM 77 H2 1 1 11.906 0.017 5.995 0.00 0.00 0
|
||||
ATOM 78 H2 1 1 11.873 2.916 9.016 0.00 0.00 0
|
||||
ATOM 79 H2 1 1 14.907 3.062 5.960 0.00 0.00 0
|
||||
ATOM 80 H2 1 1 14.948 -0.122 8.864 0.00 0.00 0
|
||||
ATOM 81 H2 1 1 11.869 -0.118 11.930 0.00 0.00 0
|
||||
ATOM 82 H2 1 1 11.932 2.863 14.979 0.00 0.00 0
|
||||
ATOM 83 H2 1 1 14.835 2.976 12.018 0.00 0.00 0
|
||||
ATOM 84 H2 1 1 14.852 -0.218 14.783 0.00 0.00 0
|
||||
ATOM 85 H2 1 1 11.892 5.990 0.058 0.00 0.00 0
|
||||
ATOM 86 H2 1 1 11.816 8.684 2.936 0.00 0.00 0
|
||||
ATOM 87 H2 1 1 14.958 8.876 -0.055 0.00 0.00 0
|
||||
ATOM 88 H2 1 1 14.840 6.061 2.916 0.00 0.00 0
|
||||
ATOM 89 H2 1 1 11.911 5.971 5.726 0.00 0.00 0
|
||||
ATOM 90 H2 1 1 11.921 8.947 8.915 0.00 0.00 0
|
||||
ATOM 91 H2 1 1 15.032 8.972 5.831 0.00 0.00 0
|
||||
ATOM 92 H2 1 1 14.699 5.889 8.931 0.00 0.00 0
|
||||
ATOM 93 H2 1 1 11.765 5.844 11.846 0.00 0.00 0
|
||||
ATOM 94 H2 1 1 11.983 8.755 14.933 0.00 0.00 0
|
||||
ATOM 95 H2 1 1 14.840 8.926 11.947 0.00 0.00 0
|
||||
ATOM 96 H2 1 1 14.976 5.712 14.771 0.00 0.00 0
|
||||
ATOM 97 H2 1 1 11.824 11.871 -0.007 0.00 0.00 0
|
||||
ATOM 98 H2 1 1 11.894 14.840 2.771 0.00 0.00 0
|
||||
ATOM 99 H2 1 1 15.039 14.928 0.021 0.00 0.00 0
|
||||
ATOM 100 H2 1 1 14.876 11.851 2.910 0.00 0.00 0
|
||||
ATOM 101 H2 1 1 11.785 11.934 6.071 0.00 0.00 0
|
||||
ATOM 102 H2 1 1 11.937 14.681 8.929 0.00 0.00 0
|
||||
ATOM 103 H2 1 1 14.935 14.902 5.873 0.00 0.00 0
|
||||
ATOM 104 H2 1 1 14.882 11.944 9.007 0.00 0.00 0
|
||||
ATOM 105 H2 1 1 11.941 11.956 11.877 0.00 0.00 0
|
||||
ATOM 106 H2 1 1 11.791 14.900 14.955 0.00 0.00 0
|
||||
ATOM 107 H2 1 1 14.838 14.947 11.831 0.00 0.00 0
|
||||
ATOM 108 H2 1 1 14.891 12.005 15.050 0.00 0.00 0
|
||||
END
|
||||
@ -1,110 +0,0 @@
|
||||
108
|
||||
# CELL(abcABC): 17.8469984966 17.8469984966 17.8469984966 90.00000 90.00000 90.00000 Traj: positions Step: 0 Bead: 0
|
||||
H2 0.147000137166 0.132000079971 0.114000117173
|
||||
H2 -0.125000123837 2.94299788633 3.18800164278
|
||||
H2 3.04200165055 2.93700230854 0.107000161039
|
||||
H2 2.97599737714 -0.147999752916 2.96000035008
|
||||
H2 -0.228999850096 -0.0300000085539 5.92297467609
|
||||
H2 0.0939998645211 2.99900071046 8.91499553915
|
||||
H2 2.95399948052 2.89500151338 5.91000983444
|
||||
H2 2.8920010786 -0.155000238227 8.8700154763
|
||||
H2 -0.0480000242697 0.0869999083873 11.900983782
|
||||
H2 0.0169999766244 2.94699846603 14.9550242141
|
||||
H2 2.97899781192 2.98899926119 11.875001181
|
||||
H2 2.97599737714 0.114000117173 14.7939955891
|
||||
H2 -0.0529997434675 5.85201201223 -0.165000099964
|
||||
H2 0.00600002287786 8.85800315363 3.04000136069
|
||||
H2 3.04100150562 8.95097958943 -0.0960001543749
|
||||
H2 3.00700186988 5.87900004994 2.87599875977
|
||||
H2 0.0569997939979 5.91000983444 6.03600692814
|
||||
H2 -0.0969997701246 8.8669991662 8.80397416049
|
||||
H2 2.83199767476 8.76597923681 5.71897686163
|
||||
H2 3.14800113748 5.95599533399 8.96399734879
|
||||
H2 0.0309999947276 5.97398735913 11.9319935665
|
||||
H2 0.12399997891 8.97198792467 14.7229800075
|
||||
H2 2.99800056553 8.86101946373 11.9519964651
|
||||
H2 2.97100194428 5.94297757463 14.9140129803
|
||||
H2 0.00899998139907 11.7700124225 0.0890001982411
|
||||
H2 0.0150000042769 14.9309995688 2.99199969597
|
||||
H2 2.92400042449 14.8889828983 0.0619999894552
|
||||
H2 2.83199767476 11.9180232882 3.16199787469
|
||||
H2 -0.0969997701246 11.8850026303 6.10501163633
|
||||
H2 0.169000150494 14.7310235011 8.88901293814
|
||||
H2 2.8769989047 14.7500209629 5.92101672041
|
||||
H2 3.07800157614 12.0379877617 8.93600387439
|
||||
H2 0.0190000018896 12.010999724 11.8850026303
|
||||
H2 0.139000036105 14.8480245822 14.8409865253
|
||||
H2 2.90399752595 14.8350068229 12.0199957365
|
||||
H2 3.08300230078 12.0130105974 14.9420064547
|
||||
H2 6.04198663062 0.050999982791 -0.122000218234
|
||||
H2 5.91101527114 2.9569999153 2.81099992306
|
||||
H2 8.94902163375 3.11100106696 0.0129999790117
|
||||
H2 8.9909853865 -0.0100000204905 2.79399745931
|
||||
H2 6.06098409246 0.0420000013919 6.018014903
|
||||
H2 6.15602431937 3.00200114524 8.7079814146
|
||||
H2 8.92198067832 3.0690002718 5.90900439774
|
||||
H2 8.98802199413 0.132000079971 9.00601401927
|
||||
H2 5.91598953692 0.156999998903 11.9360153133
|
||||
H2 6.01097684611 2.8409989791 14.9089857968
|
||||
H2 8.97399879806 2.98999940612 11.9060109655
|
||||
H2 8.94600532365 -0.011999992838 14.7619803679
|
||||
H2 5.87100947407 5.8559808413 -0.118999783453
|
||||
H2 6.16401489524 8.84297452087 3.01699802737
|
||||
H2 9.19302524528 8.76201040774 0.075999901723
|
||||
H2 8.8339785083 5.96499134656 2.83499810954
|
||||
H2 5.9870051185 6.00298627024 5.94101961895
|
||||
H2 5.97700366923 8.97399879806 8.83900569179
|
||||
H2 9.02501148111 8.84599083096 6.02198373208
|
||||
H2 8.84800170436 5.69399969732 9.14301799894
|
||||
H2 5.92398011279 6.03198518135 11.8649997317
|
||||
H2 6.0190203397 8.82699336913 14.8660166074
|
||||
H2 8.834983945 9.07602416415 11.9409895791
|
||||
H2 8.89102381154 6.03902323824 14.8950155185
|
||||
H2 5.8559808413 11.9979819646 0.104999871185
|
||||
H2 5.82798736689 14.7829887031 2.90299738102
|
||||
H2 8.94198357686 14.8989843475 -0.0420000013919
|
||||
H2 8.93002417191 11.9660196611 3.01499773752
|
||||
H2 6.07299641512 11.8649997317 5.91202070784
|
||||
H2 6.03097974465 14.8909937717 8.97902598156
|
||||
H2 8.97198792467 14.8580260315 5.88302179673
|
||||
H2 8.95701220962 11.8349953839 8.96701365889
|
||||
H2 5.96599678326 11.8819863202 12.0440203819
|
||||
H2 5.94699932142 14.7049879824 14.7739926905
|
||||
H2 8.87599517877 14.852998848 11.9509910284
|
||||
H2 8.9919908232 11.9170178515 14.9289886954
|
||||
H2 11.9460167626 0.0880000533142 -0.0279999832887
|
||||
H2 11.8290156815 3.08100201092 3.11700193652
|
||||
H2 15.0040260237 3.0330003462 -0.00799999522534
|
||||
H2 14.8280216837 0.11999992838 3.0289997665
|
||||
H2 11.9060109655 0.0169999766244 5.99499569437
|
||||
H2 11.8729903076 2.91599926507 9.01601546854
|
||||
H2 14.9069749234 3.06199925731 5.96001708079
|
||||
H2 14.9479861572 -0.122000218234 8.8639828561
|
||||
H2 11.8690214785 -0.118000167703 11.9299826931
|
||||
H2 11.9319935665 2.86300216749 14.9789959417
|
||||
H2 14.8350068229 2.97599737714 12.0179848631
|
||||
H2 14.8519934113 -0.217999843432 14.7829887031
|
||||
H2 11.8919877694 5.99002142859 0.0579999389248
|
||||
H2 11.8159979221 8.68400968698 2.93600216361
|
||||
H2 14.9579876065 8.87599517877 -0.0550000333213
|
||||
H2 14.8399810886 6.06098409246 2.91599926507
|
||||
H2 11.9109852313 5.97102396676 5.72601491853
|
||||
H2 11.9209866806 8.94701076035 8.91499553915
|
||||
H2 15.0320194981 8.97198792467 5.83100367699
|
||||
H2 14.6990082799 5.88900149921 8.93097669089
|
||||
H2 11.764985239 5.84402143636 11.8460022699
|
||||
H2 11.9830062496 8.75502526857 14.9330104422
|
||||
H2 14.8399810886 8.92600242512 11.9470221993
|
||||
H2 14.9759796316 5.71199172246 14.7709763805
|
||||
H2 11.823988498 11.8709794342 -0.0070000090516
|
||||
H2 11.8939986428 14.8399810886 2.77099941776
|
||||
H2 15.0390046373 14.9279832587 0.0209999742371
|
||||
H2 14.8760180566 11.8509765357 2.90999839551
|
||||
H2 11.7849881376 11.9340044399 6.07098554172
|
||||
H2 11.93702075 14.6810162548 8.92901873521
|
||||
H2 14.9350213156 14.9020006576 5.87302034746
|
||||
H2 14.8819977591 11.9440058892 9.00701945597
|
||||
H2 11.9409895791 11.9560182119 11.8770120544
|
||||
H2 11.7910207578 14.8999897842 14.9550242141
|
||||
H2 14.838023133 14.9469807205 11.8309736371
|
||||
H2 14.8909937717 12.0050200215 15.0500115233
|
||||
@ -1,26 +0,0 @@
|
||||
<simulation verbosity='high'>
|
||||
<initialize nbeads='4'>
|
||||
<file mode='pdb' units='angstrom'> our_ref.pdb </file>
|
||||
<velocities mode='thermal' units='kelvin'> 25 </velocities>
|
||||
</initialize>
|
||||
<output prefix='tut1'>
|
||||
<properties filename='md' stride='1'> [step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, kinetic_cv{kelvin}] </properties>
|
||||
<properties filename='force' stride='20'> [atom_f{piconewton}(atom=0;bead=0)] </properties>
|
||||
<trajectory filename='pos' stride='100' format='pdb' cell_units='angstrom'> positions{angstrom} </trajectory>
|
||||
<checkpoint filename='checkpoint' stride='1000' overwrite='True'/>
|
||||
</output>
|
||||
<total_steps> 5000 </total_steps>
|
||||
<forces>
|
||||
<socket mode="inet">
|
||||
<address>localhost</address>
|
||||
<port> 31415 </port>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='pile_g'>
|
||||
<tau units='femtosecond'> 25 </tau>
|
||||
</thermostat>
|
||||
<timestep units='femtosecond'> 1 </timestep>
|
||||
<temperature units='kelvin'> 25 </temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,736 +0,0 @@
|
||||
<simulation verbosity='high'>
|
||||
<step>5000</step>
|
||||
<beads natoms='108' nbeads='4'>
|
||||
<q shape='(4, 324)'>
|
||||
[ -1.83955900e+00, -2.24073938e+00, -1.08250020e+00, -5.70795599e-01, 7.32627980e+00,
|
||||
7.19210265e+00, -3.30615234e-01, 3.98119438e+00, 1.51691432e+00, 2.52717260e+00,
|
||||
-1.27666806e+00, 4.73413388e+00, 1.12126184e+00, 1.26764230e+00, 1.02704916e+01,
|
||||
1.29998780e+00, 3.73413588e+00, 1.61919862e+01, 5.88202729e+00, 8.04850032e+00,
|
||||
1.24311326e+01, 1.02078708e+01, 1.86360455e+00, 1.64012625e+01, 1.17619062e+00,
|
||||
4.24983476e-01, 2.55535965e+01, 1.65002846e-01, 5.34507262e+00, 2.73617602e+01,
|
||||
6.62641741e+00, 5.73764066e+00, 2.33893339e+01, 6.10026934e+00, 2.56958142e+00,
|
||||
2.92780910e+01, 2.01269291e+00, 8.69979574e+00, -6.33324249e-01, 1.14898211e+00,
|
||||
1.61301653e+01, 3.70551886e+00, 5.80295868e+00, 1.66782201e+01, 2.75413040e-01,
|
||||
5.71194979e+00, 1.32139518e+01, 7.47120998e+00, 2.90527832e+00, 1.26243247e+01,
|
||||
1.18688316e+01, 3.86777222e-01, 1.86473408e+01, 1.66542003e+01, 6.49634508e+00,
|
||||
1.76520477e+01, 1.52792529e+01, 9.56145353e+00, 1.16514109e+01, 1.76464481e+01,
|
||||
7.90247690e-01, 1.28040514e+01, 1.99445660e+01, 1.91319083e+00, 1.48232256e+01,
|
||||
2.81978021e+01, 7.47808952e+00, 1.73026463e+01, 2.15060634e+01, 7.95108626e+00,
|
||||
9.08836417e+00, 2.88452581e+01, -8.39364894e-01, 2.33095835e+01, -1.26661254e+00,
|
||||
-2.26048825e+00, 2.73659085e+01, 6.83034984e+00, 5.55328952e+00, 3.00964760e+01,
|
||||
-2.13570013e+00, 3.85462300e+00, 2.11139559e+01, 6.98601751e+00, -1.69779185e+00,
|
||||
2.02798593e+01, 8.98144417e+00, -1.83724239e+00, 2.74015435e+01, 1.70384301e+01,
|
||||
5.49534087e+00, 2.92028322e+01, 1.28972834e+01, 4.00538016e+00, 2.38450279e+01,
|
||||
1.73369977e+01, 6.37702010e-01, 2.23536671e+01, 2.24315602e+01, -9.17792114e-01,
|
||||
2.76922986e+01, 2.71486460e+01, 4.59352860e+00, 2.73738615e+01, 2.47996576e+01,
|
||||
3.50789080e+00, 2.24217692e+01, 2.85214338e+01, 1.27744386e+01, -3.16474409e+00,
|
||||
-4.32938118e+00, 1.23369331e+01, 5.19778303e+00, 6.29834102e+00, 1.65171169e+01,
|
||||
7.43433654e+00, -1.50763053e-01, 1.71757563e+01, 8.73504480e-02, 2.91427460e+00,
|
||||
1.37000162e+01, 3.58863547e-01, 1.16430675e+01, 1.33468414e+01, 7.88277760e+00,
|
||||
1.35602855e+01, 1.85311481e+01, 6.66308247e+00, 1.10802627e+01, 1.62994052e+01,
|
||||
1.15789465e+00, 1.73181503e+01, 9.33358989e+00, 3.82104623e-01, 2.45811794e+01,
|
||||
1.33131712e+01, 5.68071890e+00, 2.77946720e+01, 1.29013165e+01, 7.27837218e+00,
|
||||
2.09147450e+01, 1.84799695e+01, -1.43953367e+00, 2.88271546e+01, 1.06297113e+01,
|
||||
1.06874159e+01, 1.80009217e+00, 9.88791886e+00, 1.74750501e+01, 5.38215565e+00,
|
||||
1.75814278e+01, 1.64927163e+01, -7.22490057e-01, 1.59410372e+01, 1.21327342e+01,
|
||||
5.31684038e+00, 1.07398656e+01, 1.27687533e+01, 1.11831750e+01, 1.30396209e+01,
|
||||
1.78543512e+01, 1.53781269e+01, 1.74549497e+01, 1.69593034e+01, 1.25392544e+01,
|
||||
1.91056959e+01, 1.02634068e+01, 1.58723572e+01, 1.01017169e+01, 1.15340755e+01,
|
||||
2.42047249e+01, 8.82103648e+00, 1.74196163e+01, 2.71575865e+01, 1.42717489e+01,
|
||||
1.61565324e+01, 2.20042138e+01, 1.46526399e+01, 1.22238423e+01, 2.82739099e+01,
|
||||
1.32115234e+01, 2.28595316e+01, -3.43176969e-01, 9.94990444e+00, 3.15261979e+01,
|
||||
7.17743425e+00, 1.79725272e+01, 2.66047961e+01, -1.03202183e-01, 1.46786234e+01,
|
||||
2.03983934e+01, 6.75355215e+00, 1.21898998e+01, 2.68300650e+01, 1.28501206e+01,
|
||||
9.52256604e+00, 2.96146284e+01, 1.79253244e+01, 1.48734446e+01, 2.75889170e+01,
|
||||
7.84459536e+00, 2.04254604e+01, 2.29273727e+01, 1.86587003e+01, 1.36039471e+01,
|
||||
2.34500168e+01, 1.76328865e+01, 1.06667576e+01, 2.40841230e+01, 2.49370928e+01,
|
||||
1.38349803e+01, 3.01788493e+01, 2.19453967e+01, 1.96844070e+01, 2.17383789e+01,
|
||||
2.79207277e+01, 2.40109880e+01, 2.44652621e+00, 7.71232732e-01, 2.28150210e+01,
|
||||
4.44993033e+00, 6.32217106e+00, 2.86959872e+01, 6.16770811e+00, 2.54155030e+00,
|
||||
2.86295708e+01, 6.58513110e-01, 7.07847686e+00, 1.91416715e+01, 8.42657055e-01,
|
||||
1.09318699e+01, 2.21629487e+01, 3.26372053e+00, 1.85487891e+01, 2.42299255e+01,
|
||||
3.53057281e+00, 1.21895915e+01, 3.07759304e+01, 5.87270948e-01, 1.54581789e+01,
|
||||
2.21462069e+01, -3.29544187e+00, 2.17376848e+01, 2.08019829e+01, 5.74042948e+00,
|
||||
2.91126306e+01, 2.82616387e+01, 4.12726443e+00, 2.38117939e+01, 2.48604110e+01,
|
||||
-9.81005677e-02, 2.75017597e+01, 2.19769526e+01, 9.55679072e+00, -3.48501195e-01,
|
||||
2.15122044e+01, 1.35659683e+01, 4.45218017e+00, 2.70106862e+01, 1.84178475e+01,
|
||||
2.90258066e+00, 3.09038945e+01, 1.13784966e+01, 3.97619446e+00, 2.33776271e+01,
|
||||
1.09744756e+01, 9.48584489e+00, 2.30108491e+01, 1.65710971e+01, 1.59074187e+01,
|
||||
2.90437432e+01, 1.63990319e+01, 1.41164353e+01, 3.03675824e+01, 9.36100919e+00,
|
||||
1.59902897e+01, 2.19588417e+01, 9.65547975e+00, 2.31178969e+01, 2.07325650e+01,
|
||||
1.43025889e+01, 2.85076354e+01, 2.79531009e+01, 1.40545290e+01, 1.99579811e+01,
|
||||
2.86838426e+01, 1.23353706e+01, 2.65845766e+01, 2.36116501e+01, 2.56191152e+01,
|
||||
5.93663687e+00, 2.14810798e+01, 3.18962824e+01, 6.43104769e+00, 2.61566331e+01,
|
||||
3.11398548e+01, 2.04112055e+00, 2.78161522e+01, 2.39026490e+01, 3.29230633e+00,
|
||||
2.35872061e+01, 1.92586393e+01, 9.42997765e+00, 2.18868541e+01, 2.93005866e+01,
|
||||
1.56731672e+01, 2.57892309e+01, 3.08659127e+01, 1.04565213e+01, 2.89111102e+01,
|
||||
2.23973168e+01, 1.41543879e+01, 2.40352391e+01, 1.89355855e+01, 2.26713139e+01,
|
||||
2.60883570e+01, 2.53551683e+01, 3.10959184e+01, 2.56617570e+01, 2.53873006e+01,
|
||||
2.02938950e+01, 2.87914567e+01, 1.97522769e+01, 2.78202344e+01, -1.76425983e+00,
|
||||
-1.53558560e+00, -1.71338801e+00, -9.78599968e-01, 6.87902421e+00, 7.88543588e+00,
|
||||
5.47881861e-01, 3.64324940e+00, 1.39468482e+00, 3.60000249e+00, -9.28967610e-01,
|
||||
4.01716866e+00, 2.42995414e+00, 1.05628735e+00, 1.03627265e+01, 9.20694754e-01,
|
||||
4.29683694e+00, 1.64579850e+01, 6.19121450e+00, 7.68893688e+00, 1.23304998e+01,
|
||||
9.82833523e+00, 1.54814143e+00, 1.71545209e+01, 6.99417618e-01, 8.54622163e-02,
|
||||
2.48873966e+01, -3.11309329e-01, 6.97214120e+00, 2.66220741e+01, 5.25625287e+00,
|
||||
7.68138067e+00, 2.39284370e+01, 6.25528626e+00, 3.07873577e+00, 3.00882100e+01,
|
||||
1.15270468e+00, 8.88014098e+00, 3.00512398e-01, 9.30446242e-01, 1.71408264e+01,
|
||||
3.50661823e+00, 5.83759203e+00, 1.72729331e+01, 3.34582087e-01, 5.40503488e+00,
|
||||
1.24459036e+01, 5.56073866e+00, 1.21588195e+00, 1.31551680e+01, 1.27378351e+01,
|
||||
-4.66813441e-01, 1.87703376e+01, 1.69486235e+01, 6.75076580e+00, 1.83449120e+01,
|
||||
1.48488718e+01, 9.47340998e+00, 1.17932793e+01, 1.67868142e+01, 6.10952151e-01,
|
||||
1.27008444e+01, 2.15901214e+01, 1.76087373e+00, 1.40248834e+01, 2.78953850e+01,
|
||||
6.51618548e+00, 1.72532108e+01, 2.04694567e+01, 7.36556309e+00, 9.99912211e+00,
|
||||
2.91964532e+01, -7.06531579e-01, 2.27219694e+01, -1.31954187e+00, -1.54612461e+00,
|
||||
2.75038363e+01, 6.70572831e+00, 5.21401215e+00, 2.84508378e+01, -1.38701455e+00,
|
||||
5.24874266e+00, 2.15644003e+01, 8.28914156e+00, -2.21199280e+00, 2.06411930e+01,
|
||||
9.08490967e+00, -3.69161804e-01, 2.79213183e+01, 1.67707124e+01, 5.77258212e+00,
|
||||
2.95534123e+01, 1.29379476e+01, 5.27372097e+00, 2.29618317e+01, 1.82846335e+01,
|
||||
5.50365226e-01, 2.32915342e+01, 2.26003508e+01, -3.23975407e-01, 2.71026192e+01,
|
||||
2.69864390e+01, 5.25571146e+00, 2.84281121e+01, 2.43362803e+01, 4.19783582e+00,
|
||||
2.23458941e+01, 2.89351055e+01, 1.30027038e+01, -2.89260409e+00, -3.32667625e+00,
|
||||
1.24700611e+01, 5.45576814e+00, 6.79907186e+00, 1.69263149e+01, 5.70732090e+00,
|
||||
1.52975089e-01, 1.72152577e+01, -5.86473536e-01, 2.60910235e+00, 1.39562777e+01,
|
||||
1.10496755e+00, 9.89893108e+00, 1.27550907e+01, 6.50405608e+00, 1.44860215e+01,
|
||||
1.84418079e+01, 6.98755864e+00, 1.14378627e+01, 1.73685838e+01, 1.03634629e+00,
|
||||
1.72542968e+01, 9.36166090e+00, 1.26996989e+00, 2.48970836e+01, 1.35415180e+01,
|
||||
4.84360499e+00, 2.82597230e+01, 1.28859648e+01, 7.62646315e+00, 2.08202186e+01,
|
||||
1.82323636e+01, -1.58242560e+00, 2.82645654e+01, 9.67026415e+00, 9.99521608e+00,
|
||||
1.48323928e+00, 1.06202054e+01, 1.74410916e+01, 5.30476845e+00, 1.68915394e+01,
|
||||
1.66028258e+01, -3.98602304e-01, 1.52286166e+01, 1.15951307e+01, 4.88875152e+00,
|
||||
1.16320855e+01, 1.18462368e+01, 1.17721604e+01, 1.30800856e+01, 1.72687237e+01,
|
||||
1.52362824e+01, 1.86182764e+01, 1.72413013e+01, 1.32638271e+01, 1.90927913e+01,
|
||||
1.01652528e+01, 1.60527418e+01, 9.59785151e+00, 1.16306603e+01, 2.32521891e+01,
|
||||
1.02733588e+01, 1.86418357e+01, 2.65319699e+01, 1.48920616e+01, 1.69296308e+01,
|
||||
2.24345192e+01, 1.44781142e+01, 1.16768928e+01, 2.87742833e+01, 1.26440243e+01,
|
||||
2.31651077e+01, 1.09153308e+00, 9.32620240e+00, 3.18068970e+01, 5.91156305e+00,
|
||||
1.82338682e+01, 2.68163992e+01, -6.10171355e-01, 1.56193643e+01, 1.99596118e+01,
|
||||
8.12957661e+00, 1.34391603e+01, 2.79448176e+01, 1.21148599e+01, 9.90095353e+00,
|
||||
2.95224900e+01, 1.88551608e+01, 1.63687321e+01, 2.81729033e+01, 7.75414361e+00,
|
||||
2.11290647e+01, 2.30983265e+01, 1.80818117e+01, 1.22179830e+01, 2.36227246e+01,
|
||||
1.85352948e+01, 1.00736995e+01, 2.52569655e+01, 2.39704097e+01, 1.44179838e+01,
|
||||
2.90993728e+01, 2.15195489e+01, 1.95569595e+01, 2.20162082e+01, 2.86888343e+01,
|
||||
2.38790793e+01, 1.81853851e+00, -8.62424353e-01, 2.30087081e+01, 3.67168316e+00,
|
||||
5.79906646e+00, 2.86237895e+01, 5.77923269e+00, 1.82976727e+00, 2.97992364e+01,
|
||||
-2.44824247e-01, 6.97483848e+00, 1.97479547e+01, 1.28907671e+00, 1.06238401e+01,
|
||||
2.22988651e+01, 3.36189040e+00, 1.99142865e+01, 2.56182622e+01, 4.87467917e+00,
|
||||
1.16104104e+01, 3.01052148e+01, -1.89720612e-01, 1.52853202e+01, 2.30601562e+01,
|
||||
-3.37897609e+00, 2.20210883e+01, 2.21023714e+01, 7.37999253e+00, 2.99827770e+01,
|
||||
2.83970918e+01, 5.06217176e+00, 2.39324034e+01, 2.36552267e+01, 3.97689851e-01,
|
||||
2.70250248e+01, 2.32913517e+01, 1.10207360e+01, 7.64503581e-01, 2.00178673e+01,
|
||||
1.37487336e+01, 4.25542754e+00, 2.60455321e+01, 1.69122386e+01, 2.31534587e+00,
|
||||
3.04356904e+01, 1.25406626e+01, 5.17675092e+00, 2.38621411e+01, 1.14515762e+01,
|
||||
9.75443924e+00, 2.25731071e+01, 1.62345346e+01, 1.68317268e+01, 2.84171490e+01,
|
||||
1.69913568e+01, 1.42827468e+01, 2.97526886e+01, 9.31307649e+00, 1.67785293e+01,
|
||||
2.17762297e+01, 8.96916957e+00, 2.19718340e+01, 2.22594418e+01, 1.33823144e+01,
|
||||
2.81207945e+01, 2.77005814e+01, 1.50622075e+01, 2.05455699e+01, 2.92151641e+01,
|
||||
1.30044976e+01, 2.67938258e+01, 2.17064822e+01, 2.45224793e+01, 5.39644288e+00,
|
||||
2.09907797e+01, 3.13381910e+01, 6.65786528e+00, 2.44267241e+01, 2.96324924e+01,
|
||||
1.59248807e+00, 2.81352950e+01, 2.52179231e+01, 3.21255854e+00, 2.29984530e+01,
|
||||
1.94459863e+01, 9.90712637e+00, 1.95242101e+01, 2.89090489e+01, 1.59338674e+01,
|
||||
2.54944440e+01, 3.14856070e+01, 1.10580434e+01, 2.91399127e+01, 2.38737698e+01,
|
||||
1.47156065e+01, 2.36566327e+01, 1.94718712e+01, 2.27327251e+01, 2.67255132e+01,
|
||||
2.57714727e+01, 3.15584870e+01, 2.55546714e+01, 2.55331520e+01, 2.06608588e+01,
|
||||
2.85241759e+01, 1.96187079e+01, 2.95686729e+01, -1.28506833e+00, -1.19627373e+00,
|
||||
-1.11505578e+00, -1.26613495e+00, 6.87769487e+00, 8.86664224e+00, 3.22672767e-01,
|
||||
3.60048900e+00, 1.75198909e+00, 3.39985912e+00, -5.38113592e-01, 4.40630180e+00,
|
||||
2.05527629e+00, 1.04780310e+00, 1.09245524e+01, 1.64433825e+00, 5.07925261e+00,
|
||||
1.66693862e+01, 6.34528032e+00, 6.84652464e+00, 1.30553942e+01, 9.19503930e+00,
|
||||
1.02559973e+00, 1.64900202e+01, 1.50883393e+00, 1.94153184e-01, 2.60419984e+01,
|
||||
2.23637168e-01, 5.88126235e+00, 2.68151686e+01, 6.09330009e+00, 6.41359349e+00,
|
||||
2.27265508e+01, 5.20417493e+00, 3.02351860e+00, 2.90727542e+01, 5.22759441e-01,
|
||||
9.07723226e+00, 3.74357289e-01, 5.28407017e-01, 1.77876299e+01, 3.40818122e+00,
|
||||
4.77500246e+00, 1.61051931e+01, -7.15798597e-01, 5.35494411e+00, 1.24396028e+01,
|
||||
5.26132317e+00, 3.65101881e+00, 1.45180281e+01, 1.20044556e+01, 6.47702685e-01,
|
||||
1.89647984e+01, 1.63575659e+01, 6.85886982e+00, 1.86666656e+01, 1.39918716e+01,
|
||||
9.63134562e+00, 1.21489398e+01, 1.79744053e+01, -4.65149892e-02, 1.28820467e+01,
|
||||
2.20848030e+01, 5.38141652e-01, 1.49773108e+01, 2.86234466e+01, 6.69460622e+00,
|
||||
1.70430908e+01, 2.03293501e+01, 7.46084699e+00, 9.27068140e+00, 2.87672652e+01,
|
||||
-1.77446797e+00, 2.31007533e+01, -1.61541146e+00, -1.44197270e+00, 2.59669452e+01,
|
||||
7.05366958e+00, 6.78973516e+00, 2.82048010e+01, -6.81707442e-01, 4.11224811e+00,
|
||||
2.33230735e+01, 7.64143788e+00, -1.30932484e+00, 2.00341346e+01, 8.43186122e+00,
|
||||
-3.23227570e-01, 2.88456685e+01, 1.71869485e+01, 5.59484664e+00, 2.86861878e+01,
|
||||
1.38255153e+01, 5.39986151e+00, 2.26670663e+01, 1.74856853e+01, 1.31353338e+00,
|
||||
2.27240963e+01, 2.26573999e+01, -6.43284767e-01, 2.75545414e+01, 2.65487243e+01,
|
||||
6.36781664e+00, 2.89591698e+01, 2.55204798e+01, 4.19690392e+00, 2.20492684e+01,
|
||||
2.90086623e+01, 1.29407803e+01, -3.28971533e+00, -3.59953707e+00, 1.30308691e+01,
|
||||
4.52526975e+00, 6.05334642e+00, 1.80200038e+01, 6.86934432e+00, -6.64799107e-01,
|
||||
1.77004927e+01, -1.08469207e+00, 2.66573197e+00, 1.33883962e+01, 1.77878946e+00,
|
||||
1.01478623e+01, 1.28332615e+01, 7.20488713e+00, 1.30030127e+01, 1.82890722e+01,
|
||||
5.45538575e+00, 1.26731818e+01, 1.64372459e+01, 1.13264799e+00, 1.68270761e+01,
|
||||
9.29480506e+00, 8.02789471e-01, 2.50004864e+01, 1.30397241e+01, 4.25942991e+00,
|
||||
2.82105770e+01, 1.34839369e+01, 6.59877473e+00, 1.96748658e+01, 1.90248344e+01,
|
||||
-7.34844927e-01, 2.61879859e+01, 1.06994814e+01, 1.04221404e+01, 1.19626201e+00,
|
||||
9.75063627e+00, 1.82675328e+01, 4.79479047e+00, 1.67169178e+01, 1.67708791e+01,
|
||||
-3.25796174e-01, 1.58140826e+01, 1.07514402e+01, 4.16021066e+00, 1.14190484e+01,
|
||||
1.20130431e+01, 1.10359921e+01, 1.23286945e+01, 1.73093633e+01, 1.60093426e+01,
|
||||
1.72472089e+01, 1.71555986e+01, 1.29595403e+01, 1.96515771e+01, 1.07779852e+01,
|
||||
1.55906451e+01, 1.04066011e+01, 1.06852174e+01, 2.41637389e+01, 9.33300851e+00,
|
||||
1.72769290e+01, 2.72366205e+01, 1.43344594e+01, 1.55444449e+01, 2.25613745e+01,
|
||||
1.54876710e+01, 1.23994150e+01, 2.77630051e+01, 1.24465157e+01, 2.22953455e+01,
|
||||
7.07224538e-01, 9.17225571e+00, 3.04541888e+01, 7.00444346e+00, 1.90451094e+01,
|
||||
2.68206460e+01, 2.12443190e-01, 1.40421608e+01, 2.16604155e+01, 8.76748146e+00,
|
||||
1.18599685e+01, 2.63467340e+01, 1.24514910e+01, 9.07508597e+00, 2.94452971e+01,
|
||||
1.81138604e+01, 1.65350863e+01, 2.76724408e+01, 8.10094240e+00, 2.03902238e+01,
|
||||
2.19891729e+01, 1.81613540e+01, 1.28241365e+01, 2.30836693e+01, 1.77077396e+01,
|
||||
1.07839643e+01, 2.43167076e+01, 2.35379387e+01, 1.43368823e+01, 2.99960368e+01,
|
||||
2.18020500e+01, 1.98836259e+01, 2.10543368e+01, 2.77564511e+01, 2.38873187e+01,
|
||||
2.63596088e+00, -8.45710736e-01, 2.26031998e+01, 4.94875239e+00, 6.06483058e+00,
|
||||
2.72420930e+01, 7.16044030e+00, 2.03664724e+00, 2.83819926e+01, 1.41474271e+00,
|
||||
6.86956553e+00, 1.90297274e+01, 2.08547446e-01, 1.17356589e+01, 2.20093707e+01,
|
||||
3.11015561e+00, 1.84015708e+01, 2.55258414e+01, 4.51413195e+00, 1.15060640e+01,
|
||||
3.04420577e+01, 2.05350822e-01, 1.59037463e+01, 2.20766378e+01, -3.08680082e+00,
|
||||
2.27928539e+01, 2.19423049e+01, 6.96063455e+00, 2.93175572e+01, 2.63580580e+01,
|
||||
4.17130592e+00, 2.37215427e+01, 2.48207538e+01, -1.10022388e+00, 2.72061284e+01,
|
||||
2.27735841e+01, 1.10983539e+01, 5.03790539e-01, 2.05447311e+01, 1.35069355e+01,
|
||||
4.99617490e+00, 2.74249691e+01, 1.74389534e+01, 2.12313453e+00, 3.09387285e+01,
|
||||
1.30390672e+01, 4.56728163e+00, 2.49467870e+01, 1.09552706e+01, 1.05134177e+01,
|
||||
2.26330821e+01, 1.67053853e+01, 1.63758180e+01, 2.83218004e+01, 1.73740024e+01,
|
||||
1.40724154e+01, 3.02682616e+01, 8.35484609e+00, 1.66575388e+01, 2.13501708e+01,
|
||||
1.01994161e+01, 2.34754835e+01, 2.17794008e+01, 1.46632688e+01, 2.78344546e+01,
|
||||
2.68554005e+01, 1.40368100e+01, 2.04864069e+01, 2.79509647e+01, 1.19193324e+01,
|
||||
2.79392613e+01, 2.26582097e+01, 2.45440331e+01, 6.30616900e+00, 2.13859764e+01,
|
||||
3.08849664e+01, 6.44869190e+00, 2.64928749e+01, 3.02400532e+01, 8.32685758e-01,
|
||||
2.74640627e+01, 2.40967712e+01, 3.18770838e+00, 2.27412709e+01, 1.85562433e+01,
|
||||
9.23151490e+00, 2.03983609e+01, 2.91681800e+01, 1.56979455e+01, 2.51695730e+01,
|
||||
3.07717754e+01, 1.06821424e+01, 2.92168363e+01, 2.36456995e+01, 1.45948324e+01,
|
||||
2.33527556e+01, 1.93047064e+01, 2.37746530e+01, 2.48248533e+01, 2.61599136e+01,
|
||||
3.04541638e+01, 2.58041186e+01, 2.56474296e+01, 2.02610796e+01, 2.85417157e+01,
|
||||
1.88972442e+01, 2.98568715e+01, -2.38586496e+00, -7.58828968e-01, -1.63156635e+00,
|
||||
-1.24260140e-01, 7.66170676e+00, 8.26519210e+00, 8.18582687e-01, 3.21215177e+00,
|
||||
8.71469426e-01, 3.32445560e+00, -1.32118548e+00, 3.91101312e+00, 2.32046567e+00,
|
||||
1.58370834e+00, 1.07292588e+01, 1.33792245e+00, 4.76690685e+00, 1.57155304e+01,
|
||||
5.60070334e+00, 7.35450929e+00, 1.13291649e+01, 9.38118665e+00, 1.32457406e+00,
|
||||
1.64112640e+01, 2.06694803e+00, -1.08774960e-01, 2.51995098e+01, 5.83962037e-01,
|
||||
6.14184963e+00, 2.60031487e+01, 7.65609079e+00, 5.60778423e+00, 2.29300579e+01,
|
||||
5.77114858e+00, 2.13679298e+00, 2.93327862e+01, 2.19806103e+00, 9.68222590e+00,
|
||||
1.57880111e+00, 3.14284164e-01, 1.73107320e+01, 3.17317841e+00, 5.31032205e+00,
|
||||
1.67722718e+01, -3.21992890e-01, 4.86044703e+00, 1.46302272e+01, 6.21744347e+00,
|
||||
3.23194778e+00, 1.36053502e+01, 1.20906550e+01, 1.05401318e+00, 1.89924170e+01,
|
||||
1.86500989e+01, 7.28920551e+00, 1.90214147e+01, 1.48608421e+01, 8.94579137e+00,
|
||||
1.17939437e+01, 1.76451822e+01, -2.16292241e-01, 1.27470176e+01, 2.10170183e+01,
|
||||
1.86340865e+00, 1.43620945e+01, 2.88854080e+01, 7.51715045e+00, 1.76892134e+01,
|
||||
2.12086589e+01, 7.40953137e+00, 8.90283609e+00, 2.82643224e+01, -1.81615954e+00,
|
||||
2.35425566e+01, -6.35391065e-01, -1.81429720e+00, 2.64341698e+01, 6.21091555e+00,
|
||||
5.43254354e+00, 2.75836921e+01, -9.47958758e-01, 4.71567619e+00, 2.21052659e+01,
|
||||
7.88771418e+00, -1.66841626e+00, 2.04914383e+01, 8.26675658e+00, -4.59229759e-01,
|
||||
2.71579580e+01, 1.68410204e+01, 5.00100432e+00, 2.90662447e+01, 1.29214242e+01,
|
||||
4.69089603e+00, 2.34759714e+01, 1.67656282e+01, 6.53854823e-01, 2.38352952e+01,
|
||||
2.17931036e+01, -1.01639060e+00, 2.72103570e+01, 2.59664262e+01, 4.89596274e+00,
|
||||
2.77674695e+01, 2.47617265e+01, 3.70839276e+00, 2.19495406e+01, 2.77068507e+01,
|
||||
1.33883490e+01, -2.96774368e+00, -3.88662826e+00, 1.21540528e+01, 4.88520987e+00,
|
||||
6.46250715e+00, 1.58502434e+01, 7.52061809e+00, -5.94010768e-01, 1.80041063e+01,
|
||||
-1.45785510e+00, 1.90361473e+00, 1.37682126e+01, 1.01096461e+00, 1.05140180e+01,
|
||||
1.32426632e+01, 7.30651107e+00, 1.44595448e+01, 1.87287975e+01, 5.98649586e+00,
|
||||
1.22746034e+01, 1.63100152e+01, 1.15741871e+00, 1.66981121e+01, 9.12913654e+00,
|
||||
-2.92667679e-01, 2.45886138e+01, 1.33050334e+01, 3.97377478e+00, 2.69467178e+01,
|
||||
1.42080442e+01, 6.64595078e+00, 2.01191284e+01, 1.86015542e+01, -1.75336417e+00,
|
||||
2.83471787e+01, 1.08620615e+01, 1.11988186e+01, 1.95253365e+00, 9.45047887e+00,
|
||||
1.75938537e+01, 4.23821913e+00, 1.70208034e+01, 1.60108143e+01, -1.22190668e+00,
|
||||
1.50766040e+01, 1.12165304e+01, 5.43990155e+00, 1.09933699e+01, 1.22850779e+01,
|
||||
1.16546326e+01, 1.23781385e+01, 1.80369686e+01, 1.53125056e+01, 1.73516609e+01,
|
||||
1.75785987e+01, 1.18313796e+01, 1.94046667e+01, 1.10166421e+01, 1.62979612e+01,
|
||||
9.66207941e+00, 1.08458701e+01, 2.37048314e+01, 8.44004940e+00, 1.70203943e+01,
|
||||
2.65757559e+01, 1.43027170e+01, 1.63790927e+01, 2.18182624e+01, 1.38144113e+01,
|
||||
1.12481654e+01, 2.87113704e+01, 1.23513270e+01, 2.18980717e+01, 5.17961694e-01,
|
||||
9.82158593e+00, 3.06003668e+01, 6.40959927e+00, 1.97382355e+01, 2.64666452e+01,
|
||||
-2.56886470e-01, 1.51138569e+01, 2.14756928e+01, 7.69843726e+00, 1.13280462e+01,
|
||||
2.53724470e+01, 1.17891597e+01, 9.16645548e+00, 2.85470480e+01, 1.83229821e+01,
|
||||
1.60641629e+01, 2.74309208e+01, 8.14336993e+00, 2.00104262e+01, 2.16691335e+01,
|
||||
1.90509791e+01, 1.35353858e+01, 2.30944654e+01, 1.79157296e+01, 1.01235942e+01,
|
||||
2.45385866e+01, 2.35448360e+01, 1.40749201e+01, 3.01972078e+01, 2.17768651e+01,
|
||||
2.03786050e+01, 2.10805498e+01, 2.76935947e+01, 2.44615615e+01, 3.05749628e+00,
|
||||
4.07414296e-01, 2.16336438e+01, 4.40657970e+00, 5.21060398e+00, 2.88299726e+01,
|
||||
7.01128437e+00, 8.79026008e-01, 2.85241186e+01, 3.14915946e-01, 7.07809470e+00,
|
||||
1.98625917e+01, 4.50200492e-03, 1.15863909e+01, 2.29376845e+01, 2.50348240e+00,
|
||||
1.86113050e+01, 2.47645618e+01, 3.74984924e+00, 1.16835156e+01, 3.00116656e+01,
|
||||
1.33610084e+00, 1.54039934e+01, 2.16664404e+01, -3.77318264e+00, 2.24073626e+01,
|
||||
2.17213138e+01, 6.32154759e+00, 2.91289015e+01, 2.80778040e+01, 4.04768899e+00,
|
||||
2.51637272e+01, 2.49482621e+01, -1.80258150e+00, 2.77649841e+01, 2.28639670e+01,
|
||||
9.52095023e+00, 1.12320744e+00, 2.11060298e+01, 1.35966775e+01, 4.52804356e+00,
|
||||
2.65933190e+01, 1.74870802e+01, 3.12917456e+00, 3.12581554e+01, 1.26369216e+01,
|
||||
4.24969839e+00, 2.28577555e+01, 1.09623135e+01, 9.61329928e+00, 2.31292240e+01,
|
||||
1.68635673e+01, 1.59562582e+01, 2.83134554e+01, 1.65993286e+01, 1.34061062e+01,
|
||||
3.07651009e+01, 8.60937322e+00, 1.58164516e+01, 2.15713342e+01, 9.77426434e+00,
|
||||
2.38239983e+01, 2.07170028e+01, 1.44272471e+01, 2.72915473e+01, 2.78094878e+01,
|
||||
1.46067375e+01, 2.02374654e+01, 2.83102299e+01, 1.21902457e+01, 2.73283465e+01,
|
||||
2.25040436e+01, 2.40201181e+01, 7.24105767e+00, 2.16659528e+01, 3.22281603e+01,
|
||||
6.56727556e+00, 2.67438472e+01, 3.14254999e+01, 1.00941523e+00, 2.72477648e+01,
|
||||
2.43062679e+01, 3.91537815e+00, 2.28206020e+01, 1.90617248e+01, 9.50661026e+00,
|
||||
1.95693791e+01, 2.99400820e+01, 1.67827219e+01, 2.52432494e+01, 3.09283864e+01,
|
||||
1.18433291e+01, 3.02997758e+01, 2.26469178e+01, 1.40818435e+01, 2.52061280e+01,
|
||||
1.93512323e+01, 2.29021542e+01, 2.65208970e+01, 2.53952117e+01, 3.08512322e+01,
|
||||
2.76076800e+01, 2.54724293e+01, 1.95719692e+01, 2.94254771e+01, 1.94406409e+01,
|
||||
2.73992646e+01 ]
|
||||
</q>
|
||||
<p shape='(4, 324)'>
|
||||
[ 1.40372994e-01, -1.70336384e+00, 6.37303020e-01, -3.60483257e-01, -1.10940109e+00,
|
||||
3.74869623e-01, -3.25735029e-01, 7.75472220e-01, 1.10757231e+00, -2.40493336e+00,
|
||||
-1.53716651e+00, 1.37041429e+00, 5.28228491e-01, 1.38616874e+00, -1.38581237e+00,
|
||||
-3.77690596e-01, 2.35773187e-01, 1.37036828e+00, 1.74363360e+00, 1.46668252e+00,
|
||||
9.19554977e-01, 1.46604384e+00, 7.17395153e-01, 1.16766357e+00, 5.74213643e-01,
|
||||
1.73367931e-01, -1.66161161e+00, 2.33212598e+00, -9.77285003e-01, 2.41575083e-01,
|
||||
-1.49585940e-01, -1.18522916e+00, 1.58553462e-01, -1.47168505e+00, -1.24387557e+00,
|
||||
7.68483391e-01, -1.56677579e+00, 8.39149463e-01, -7.60108832e-01, -1.39563512e-01,
|
||||
1.23618455e+00, -3.39699359e-01, -9.88358452e-01, -1.25161119e+00, 5.75688958e-01,
|
||||
3.34908289e-02, -1.57137545e+00, 9.54873978e-01, 2.21048523e-01, 3.15471131e+00,
|
||||
4.38424417e-01, -1.41296551e+00, -6.15293784e-01, 4.54568031e-01, 5.25912190e-01,
|
||||
1.10462750e+00, -7.33687512e-01, 3.51836732e-01, 1.11696908e+00, -1.75519514e-01,
|
||||
-9.87401261e-01, -1.00224818e+00, -2.06257599e+00, -8.69995365e-02, 1.96237139e-01,
|
||||
-1.55878661e+00, 2.06187113e+00, 5.21020731e-03, 2.35617406e-01, 1.59018004e+00,
|
||||
1.23310143e+00, -9.06287741e-01, 1.02772014e+00, -4.13278400e-01, -9.73895321e-01,
|
||||
1.26420822e+00, -6.00372594e-02, -8.86889397e-01, -1.35877237e+00, 1.26542138e-01,
|
||||
-1.96996606e+00, 1.16602982e+00, -1.87715811e+00, -1.07989580e+00, 1.52684255e-01,
|
||||
2.69202324e+00, -7.86764932e-01, -1.26792145e+00, -2.15985504e-01, 2.83847115e-01,
|
||||
-3.90074815e-02, -3.21827572e-01, 8.60927158e-01, 1.15174374e+00, -1.06395947e+00,
|
||||
6.56206723e-01, 1.71687653e+00, 1.88094551e+00, -1.41246651e-01, 6.67235507e-01,
|
||||
8.02729512e-01, -5.99750938e-01, 3.86175582e-01, 1.56674025e+00, 1.16770355e-01,
|
||||
-1.25058894e-01, -6.64317179e-01, -1.90732529e+00, -3.49443824e-01, -1.75313244e+00,
|
||||
-8.93802373e-01, -8.38911513e-02, -3.54765784e+00, 3.29189169e-01, -1.59470714e+00,
|
||||
2.28214169e-01, -2.04640475e+00, -1.21363021e+00, 4.43956386e-01, 1.98553407e+00,
|
||||
-6.41921427e-01, 8.31610867e-01, 2.37729074e-01, -1.96307860e+00, 5.83519443e-01,
|
||||
-9.23373803e-01, -2.72733993e-01, -6.80313749e-01, -4.21629881e-01, 8.24112349e-02,
|
||||
-2.02945940e-02, 4.70239760e-02, -8.87189426e-01, 2.62362546e-01, 2.90567277e-03,
|
||||
-5.77088646e-01, 8.63734028e-01, 2.12881273e-01, -1.84398318e+00, -1.27537888e+00,
|
||||
-8.96390165e-01, 8.67723220e-01, -7.13233254e-01, 9.98467053e-01, 1.20471615e+00,
|
||||
3.80364988e-02, -3.86066496e-01, 2.80482433e-01, -5.55953973e-01, 6.99483364e-01,
|
||||
-6.20862722e-01, -5.75941665e-01, -1.01810316e+00, 6.59129210e-01, 3.36528627e-01,
|
||||
1.19657571e+00, 1.16325245e+00, 1.38231876e+00, -1.62296272e+00, 7.73325492e-01,
|
||||
9.07953738e-01, -1.56020700e+00, 5.91276288e-01, -1.45072710e+00, 3.06498507e-01,
|
||||
1.02001412e+00, -7.79180574e-01, -1.09202701e+00, 8.60608247e-01, -8.12517020e-01,
|
||||
-3.29732754e-01, 7.95824769e-02, -3.53180396e-01, -6.92843090e-01, 8.08287670e-01,
|
||||
-1.31368002e+00, 8.92275005e-01, 7.74460553e-01, -4.16315357e-01, 4.13327475e-01,
|
||||
2.07077192e-01, -2.18589769e+00, -1.02281048e-01, 9.09167509e-02, -1.46835347e+00,
|
||||
1.23256338e+00, -3.07250057e-01, 2.46249432e-01, 7.74791555e-01, 3.98298680e-01,
|
||||
-5.39569195e-02, 4.73911005e-01, 1.79978269e+00, 6.49413046e-01, 1.44049305e+00,
|
||||
-7.54136523e-01, 6.85251391e-01, -1.03401786e+00, -1.07121945e+00, 1.15101429e+00,
|
||||
-6.78252322e-01, 3.66963136e-02, -1.11945652e-01, -4.17808375e-01, 9.68133746e-02,
|
||||
1.99069757e+00, 1.55013114e+00, -1.92882805e-02, 1.33795454e+00, 7.39452603e-01,
|
||||
3.77633950e-01, 1.81163711e+00, 2.58943819e+00, 1.29562203e+00, -1.48713547e+00,
|
||||
-9.55424888e-01, 3.46515063e-01, 4.16880974e-01, -1.14430760e+00, -5.41540342e-01,
|
||||
1.15617781e+00, -8.15311978e-01, -1.24131679e-01, -1.01785991e+00, -6.82587363e-01,
|
||||
1.34485087e+00, 3.95295976e-01, 3.61637052e-01, -4.79290805e-01, 1.96407902e-02,
|
||||
-6.96427808e-01, 9.65717585e-01, 4.63130635e-01, -4.12348950e-02, -6.14114134e-02,
|
||||
3.76909298e-01, 1.31464930e-01, -1.96943568e+00, -2.07138054e+00, 1.07506895e+00,
|
||||
-8.47693792e-02, 1.50838082e+00, 9.66357898e-01, 3.29832625e-02, 2.53592195e+00,
|
||||
-8.44613584e-01, -1.75528218e-01, -1.51432281e+00, -1.30241164e+00, -2.07575407e-01,
|
||||
-1.04844306e+00, -1.28575451e+00, 4.62727941e-01, 1.46590141e+00, -2.63004766e-01,
|
||||
-1.01898113e+00, -1.37875255e+00, -9.12918530e-01, 1.71033710e+00, 1.02893180e+00,
|
||||
-1.32634968e+00, 8.82495711e-02, -9.11997611e-01, -2.42094019e+00, -6.29467944e-01,
|
||||
8.08788619e-01, 1.94804910e+00, -8.72566500e-01, 9.20033720e-01, -1.72884793e+00,
|
||||
3.44191186e-01, 1.21733557e+00, 1.87515471e-01, 5.10808988e-02, 7.94329477e-01,
|
||||
-3.52316495e-01, -1.00945167e+00, 7.35146276e-01, 1.07654301e+00, 1.04930155e+00,
|
||||
-1.85826022e+00, -5.07927804e-01, -9.80771494e-01, -3.21767737e+00, -1.49676613e-01,
|
||||
-2.15647041e-01, -1.82770370e+00, 1.49469246e+00, -1.68826911e+00, 1.62663223e+00,
|
||||
-3.48742295e-01, -6.17863065e-01, -8.81308520e-01, 7.44925882e-01, 1.73070837e+00,
|
||||
-1.28410488e-01, 8.64089144e-01, 3.26440658e-01, 1.10448379e+00, -1.69522830e-01,
|
||||
-6.53776497e-01, 3.81864979e-01, -1.07760135e+00, -3.98562627e-01, 5.38128157e-01,
|
||||
-2.29754635e-01, -2.33407869e+00, -1.25116856e-01, -1.21131987e+00, 1.08298393e+00,
|
||||
1.51546625e-01, -3.56701517e-01, -9.98362812e-01, 1.03306121e-01, -4.42120758e-01,
|
||||
-3.94015959e-02, -8.12077182e-01, -5.72762073e-01, -8.31013031e-01, -1.16147494e+00,
|
||||
-7.35897383e-02, -1.09398682e-01, -1.40219599e+00, 9.63041766e-01, 6.60583424e-02,
|
||||
-1.71857732e+00, 1.99405396e-01, -8.84068189e-01, -2.18819685e-01, 2.21366910e+00,
|
||||
-1.84460428e+00, -1.05848347e+00, -1.53731311e+00, -2.25141079e-01, 8.55239543e-02,
|
||||
-5.64991535e-01, -1.11243253e+00, -1.48334114e+00, 2.85484662e-01, -5.98357857e-01,
|
||||
-5.62005083e-01, 5.18476929e-02, 7.20785662e-01, -9.21464830e-01, -4.17295452e-01,
|
||||
-7.06470111e-01, -2.07423207e+00, -2.82738840e-01, -7.05765425e-01, 5.71154019e-01,
|
||||
1.41402308e+00, 7.15224885e-01, -9.01571406e-01, -1.78966537e-01, -9.57855925e-01,
|
||||
1.92815188e+00, 3.67644067e-01, -7.77398627e-01, 3.75573158e-01, -1.27570871e+00,
|
||||
-1.56269598e-01, -1.20126128e+00, 5.64996896e-01, -1.45388556e+00, -4.64414199e-01,
|
||||
1.88714704e+00, 1.47969578e+00, -1.96063537e-01, 5.18755530e-01, 2.68937808e+00,
|
||||
-1.69730122e+00, -5.36576005e-01, 1.04962410e+00, 4.65512668e-01, 1.47912174e+00,
|
||||
8.46469352e-01, 8.08058567e-01, 1.13879268e+00, 6.34831145e-01, 1.43535434e+00,
|
||||
2.04580992e+00, 7.90686500e-04, 1.19722827e+00, -1.42644546e+00, 1.92405610e-01,
|
||||
8.14926140e-02, -2.36223884e-01, 1.16089456e+00, 2.24765430e-01, -1.32752285e+00,
|
||||
1.36642599e+00, -5.36742312e-01, 4.98821954e-01, 6.00651182e-01, -2.56801229e+00,
|
||||
-2.36250226e-01, -8.57842968e-01, -3.00915036e-01, 2.41807890e+00, 7.24711670e-01,
|
||||
1.36799087e+00, -1.78428862e-01, -3.59900038e-01, 3.42306822e-01, -3.98271527e-01,
|
||||
-1.30912096e-01, -5.36751004e-01, -6.45495166e-01, 3.16360509e-02, -6.38708513e-01,
|
||||
1.33860162e+00, 7.16436859e-01, 8.83639989e-01, -2.87900422e-01, -1.77363177e-01,
|
||||
1.75217790e-01, -2.41654433e+00, -8.13755792e-02, -7.71741152e-01, 1.33456387e+00,
|
||||
-5.10830196e-01, -1.10584683e+00, -1.31689363e+00, 1.17583053e+00, 6.77964594e-01,
|
||||
2.99895744e-01, 5.12719967e-01, 2.06867244e+00, -2.89182146e+00, 1.84494668e+00,
|
||||
3.10415200e-01, 1.64179666e+00, -2.18044104e+00, -9.27575571e-01, -8.07814665e-01,
|
||||
-1.85157068e-01, 5.86693996e-01, 1.60605927e+00, -1.03758631e-01, -9.65958485e-01,
|
||||
-9.06979038e-01, 5.61735019e-01, 3.35132784e-01, 6.02021180e-01, 1.76689554e-01,
|
||||
-3.36488706e-02, 1.45021360e+00, 6.70122973e-01, -1.71792295e-01, 8.29616451e-01,
|
||||
-8.05614322e-01, -2.58079407e+00, 1.01873565e+00, -3.81060235e-01, 1.00130704e+00,
|
||||
1.55674172e+00, 2.02125219e+00, -7.48802492e-01, 1.06649929e+00, -9.65493892e-01,
|
||||
-3.98926995e-01, 1.08567030e+00, -1.04009627e+00, 1.41394914e+00, 1.80976669e+00,
|
||||
-4.38932124e-01, -9.96116646e-01, 2.93325605e+00, -2.65850173e+00, -2.86627210e-01,
|
||||
-1.13380351e+00, 1.01776593e+00, 3.82798024e-01, -2.03015905e+00, -4.77705377e-01,
|
||||
-1.52497126e-01, -3.08097496e-01, -1.22388367e+00, 7.72589230e-01, -1.18620576e+00,
|
||||
7.03396905e-01, -6.07914021e-01, 1.36665589e+00, 3.05885200e-01, 8.68021103e-01,
|
||||
7.85645067e-01, 6.86344886e-01, 6.60054397e-02, 6.72872685e-01, -1.72147672e+00,
|
||||
-3.35687107e-01, 6.40280686e-01, 1.90765562e-01, -1.19759420e+00, 3.98723557e-01,
|
||||
1.01300503e+00, 3.15092859e-01, -7.48716523e-01, -6.31490429e-01, 5.03478302e-01,
|
||||
-7.97737020e-01, -3.64328563e-01, -6.84865111e-01, -5.96889804e-01, 8.97320299e-01,
|
||||
-2.74447207e-01, 8.96041854e-01, 8.62447243e-01, 1.14171036e+00, 1.89620219e+00,
|
||||
-2.03086042e-01, 1.21863991e+00, -7.08332672e-01, 8.65474351e-01, 8.84794271e-02,
|
||||
-7.38048949e-01, -3.29738572e-01, 6.25639096e-01, 8.73860305e-01, 1.32892575e+00,
|
||||
-1.08731164e+00, 7.42722680e-02, 1.10376262e+00, -2.70446460e-01, 4.84230480e-01,
|
||||
-7.49397372e-01, -1.22773789e-01, -1.73175160e+00, 1.00419017e+00, 4.18612640e-01,
|
||||
-1.19265354e+00, 1.89942453e+00, 2.16924392e-01, 1.98456504e+00, -4.47127896e-02,
|
||||
-8.13751338e-01, -1.57721515e+00, -1.51087464e+00, 1.49149818e-01, 3.34518489e-01,
|
||||
-1.49643992e+00, 3.14649899e-01, 2.07634343e+00, -6.04070136e-01, 1.87721508e+00,
|
||||
-4.06863898e-01, -7.83918757e-01, 2.03531050e-01, -7.64354284e-02, 3.31824344e-01,
|
||||
4.79012974e-01, 1.83535358e+00, 9.02286124e-01, -1.15207026e+00, 1.28672254e-01,
|
||||
-8.26157812e-01, 1.90407166e+00, -3.96264466e-01, 1.94392469e-01, -8.73100373e-01,
|
||||
-3.37468953e-03, 9.76466097e-01, 6.23291758e-02, -2.37497472e-01, 1.07993508e+00,
|
||||
-3.14201676e-01, 1.70621222e+00, -9.90965410e-02, 1.20753777e-01, -6.38441546e-01,
|
||||
1.41774776e+00, -5.80882309e-01, 1.09405908e+00, 3.93716017e-01, -1.28958167e+00,
|
||||
4.24488630e-01, 9.55061213e-01, 1.29635151e+00, -1.96475095e-01, 1.27366715e-01,
|
||||
1.13693192e-01, -1.99660506e+00, -7.38934810e-01, 1.27623410e+00, 1.67534486e+00,
|
||||
2.98512870e-01, 1.48183369e+00, 1.03842506e+00, -1.05881112e+00, 3.59296217e+00,
|
||||
2.33641006e+00, -4.44058636e-01, -7.05099765e-02, 3.21036779e-01, -1.92001349e-01,
|
||||
-1.42762638e+00, -4.05688476e-01, 4.80851634e-01, 4.74839401e-01, 1.26185094e+00,
|
||||
-1.05552598e-01, 5.56910980e-01, -5.32621114e-01, 9.34349181e-02, 2.56314544e-01,
|
||||
-1.74582311e+00, 4.17470989e-01, 2.29528051e+00, 2.62392322e-01, 3.18772657e-01,
|
||||
8.17214811e-01, -8.16325438e-01, -4.19774898e-01, -1.79953350e-02, 2.52742913e+00,
|
||||
-2.79795924e-02, -8.35211211e-01, -3.49992939e-01, 1.17976432e+00, 1.06455248e+00,
|
||||
4.99693771e-01, -3.25404106e-01, -1.19518002e+00, -1.12107657e+00, 7.08571829e-01,
|
||||
-1.32836392e+00, -4.05940531e-01, -1.62901886e+00, 1.94474528e-01, 5.69560181e-01,
|
||||
-1.16097389e+00, -9.55882892e-01, 8.43738270e-01, 9.60068854e-01, 3.04930133e-02,
|
||||
1.09691130e-01, 5.31002976e-01, -7.96127056e-02, -2.90684090e-02, -2.90427758e-01,
|
||||
6.26093036e-01, 6.57694112e-01, -4.85835995e-01, 1.80074318e-01, 1.12303284e+00,
|
||||
5.23912334e-01, 5.85300514e-01, 6.21565032e-01, -6.88438319e-01, 1.76104297e+00,
|
||||
4.69681129e-01, -1.50756131e+00, -2.35433970e+00, 2.20926618e-01, -1.59035655e+00,
|
||||
-2.16680752e-01, -1.09766225e+00, -3.66108880e-01, 6.72549669e-01, -1.39966389e+00,
|
||||
-2.64964223e-01, -4.47757200e-01, 5.31233808e-01, 1.84834139e+00, -6.02818313e-01,
|
||||
-1.44473483e+00, 1.52776447e-02, -7.93366554e-01, -1.90159337e+00, 1.74463595e-01,
|
||||
-2.11499652e+00, -2.25655780e+00, 1.18038845e+00, -3.70794733e-01, -8.67093500e-01,
|
||||
1.43290672e+00, -1.38210097e-01, 1.14792213e+00, 1.06670774e+00, 1.03103438e+00,
|
||||
-9.00433225e-02, -5.34357708e-01, -1.22908335e+00, -4.72611965e-01, 2.46111190e-01,
|
||||
-1.70561610e+00, 3.92682358e-01, -1.55756928e+00, -2.37928227e-01, 2.03059408e+00,
|
||||
-9.84120137e-01, -2.11053290e+00, 6.16981710e-01, -1.12243752e-01, -1.10029159e-02,
|
||||
9.02048435e-01, 8.56294718e-01, 1.13642549e+00, -1.50782750e+00, -3.72301949e-01,
|
||||
-1.66280307e+00, -1.38174795e+00, 8.97950650e-02, 5.55623559e-01, -6.05980874e-01,
|
||||
-7.05479352e-01, 7.04832792e-01, -3.20169261e-02, -5.46153623e-01, -4.23996939e-01,
|
||||
-1.87522120e+00, -4.41626784e-01, 2.28022755e+00, 1.41852748e+00, 7.22573260e-01,
|
||||
2.28863935e+00, 1.32648450e+00, -1.20732385e+00, 6.48320570e-01, -5.97367023e-02,
|
||||
1.26207462e-01, -2.04798081e+00, 1.13007921e+00, -1.71585140e-01, 3.14833129e-02,
|
||||
1.71558970e-01, 2.30236146e-01, -2.69742619e+00, 1.36832193e+00, -4.09947214e-01,
|
||||
-2.00570514e-01, 8.31050179e-01, 1.40744357e+00, -2.34268444e+00, -7.42098732e-03,
|
||||
1.03611120e+00, 2.06373254e+00, -5.02279592e-01, -7.01081635e-01, 1.25847835e-01,
|
||||
6.02231279e-02, -4.08815632e-01, -3.34433187e-01, 1.42676664e+00, -1.49454672e+00,
|
||||
-1.24564490e+00, 1.71269292e+00, 6.82206821e-01, 8.72601070e-01, -9.22460387e-01,
|
||||
4.55740724e-02, 1.33030508e+00, 6.53585708e-02, 3.13993497e-01, -2.11648823e+00,
|
||||
-1.36475580e-02, 2.51552262e+00, 9.25969768e-01, -6.52019962e-01, 2.03940799e+00,
|
||||
2.55910092e-01, -7.26525412e-01, -1.00207723e+00, 1.31950793e+00, -1.82967630e+00,
|
||||
-4.92805660e-01, 4.07867808e-01, 6.11026922e-02, -2.11979237e-01, -2.87253727e-01,
|
||||
1.11856203e+00, -2.21720426e-01, 1.84350017e+00, 7.84784426e-01, -1.49696700e+00,
|
||||
9.09038266e-01, -1.27156936e+00, 9.56717220e-02, -4.15656486e-01, 4.19788418e-01,
|
||||
-2.61691637e-01, -1.56861006e+00, -6.47659675e-01, -6.83293713e-01, 2.51621894e+00,
|
||||
-4.44034798e-01, 1.78185380e+00, 4.60785269e-01, -2.68311726e-01, 1.04600391e+00,
|
||||
-5.67576324e-01, 1.13507042e+00, -1.78393940e+00, -1.82719464e+00, -1.84508388e+00,
|
||||
-1.29303124e+00, 1.35664029e+00, -9.17173260e-01, 9.85863915e-01, 1.07223755e+00,
|
||||
8.84707496e-01, -1.37852063e+00, 6.19459586e-01, -2.93677966e-02, -3.18737198e-01,
|
||||
1.03094159e+00, 4.89778531e-01, 1.73667810e+00, -2.03090079e-01, 3.64701299e-01,
|
||||
3.48172075e-01, -1.54091587e+00, 1.04498049e+00, -1.28639737e+00, -4.71319136e-01,
|
||||
8.61169102e-01, 1.61610909e+00, 7.69597251e-01, 7.68227380e-01, 1.11224694e+00,
|
||||
8.48919769e-01, 3.12294367e-01, -4.93201021e-01, 6.42746189e-01, -2.27293413e-01,
|
||||
2.16505068e-01, 5.52193787e-01, -1.76108774e+00, -4.43454137e-01, -1.10836243e+00,
|
||||
7.49078941e-01, -5.26434049e-02, 4.23300776e-01, -1.66554395e+00, 3.10524219e-01,
|
||||
1.19480829e+00, -6.29200409e-01, 6.41552685e-01, 7.60530128e-01, -1.44429069e+00,
|
||||
-2.98038448e-01, 5.01177628e-01, 3.97341120e-01, 4.53467676e-01, -1.35725377e+00,
|
||||
9.43314195e-01, 2.15143758e+00, 3.94302672e-01, 2.26509780e-01, 9.59313828e-01,
|
||||
-1.66404768e-01, 1.65207595e-01, -2.39340233e+00, 3.14543001e+00, 1.05218765e+00,
|
||||
-8.14714579e-01, -3.05710147e-01, -1.74531477e+00, -3.64151538e-01, -2.09140760e-01,
|
||||
2.23739053e+00, 6.09477113e-01, 1.16899879e+00, 5.92967924e-01, -8.17673149e-01,
|
||||
-1.10420428e+00, 4.65350290e-01, 2.11023040e-03, 8.14863971e-01, 1.08315984e+00,
|
||||
-7.25860590e-02, -4.59896403e-01, 1.38164252e+00, 5.89336792e-01, 1.34519891e+00,
|
||||
-3.63277304e-01, 9.08232031e-01, 2.05775821e-01, 1.01268871e+00, 2.25900629e-01,
|
||||
1.11195741e+00, 1.46383492e+00, 1.15712737e+00, 1.37285918e+00, -3.27123406e-01,
|
||||
2.10121867e+00, 3.63728898e-01, -9.64451543e-01, 7.50304023e-02, 2.26045537e+00,
|
||||
-1.07848463e-01, -5.55058232e-01, 6.46210385e-01, -3.82173868e-01, 1.02724203e+00,
|
||||
4.75226625e-01, 2.63486832e-01, -1.87720616e-01, 2.66714045e+00, -1.37046410e-01,
|
||||
-9.47273326e-01, -2.21070556e+00, 5.16910020e-01, -1.00019802e+00, -6.10344773e-01,
|
||||
-1.23626760e-01, -7.78025616e-01, 3.54873800e-01, 1.32409224e+00, -4.96383871e-01,
|
||||
-8.45650299e-01, -7.06777204e-01, 7.74296088e-01, 5.40594697e-01, -2.35323920e+00,
|
||||
1.10574355e+00, -2.71490739e-01, 3.89486537e-01, -2.25716891e+00, 1.08161436e+00,
|
||||
-7.61396029e-01, -6.43902282e-01, 2.07071361e-01, -1.24311778e+00, 1.66718154e+00,
|
||||
-1.12540846e+00, 4.04848060e-01, 9.82172410e-01, -2.22704668e-01, -4.41651091e-01,
|
||||
8.11339257e-01, -1.71211605e+00, -6.16208091e-02, 8.56110168e-01, 5.66390166e-01,
|
||||
6.39785155e-01, 1.39973994e+00, -6.88244744e-01, 2.42634138e+00, 3.24544610e-01,
|
||||
4.48313772e-01, 7.45142689e-01, -7.23045807e-02, 1.83704141e-01, -1.47171323e+00,
|
||||
-7.09077372e-01, -6.01038702e-01, -8.75281454e-01, 5.13919915e-01, -6.60822470e-01,
|
||||
-1.43487765e+00, 7.49938057e-01, 2.83635875e-01, 3.07045512e-01, 1.48936195e+00,
|
||||
-2.17046249e-01, 2.04101206e+00, 6.02181940e-01, -1.78421830e-01, -8.17580831e-01,
|
||||
6.13386299e-01, 1.46247756e-01, -1.42514706e+00, -1.93940896e+00, -8.65275710e-01,
|
||||
1.47462311e-01, -4.02301576e-01, -9.63675890e-01, -1.84120948e+00, 8.14102917e-01,
|
||||
3.80760496e-01, 3.25900148e-01, -4.87843594e-01, -1.03508268e+00, 3.57676231e-01,
|
||||
-6.47622001e-01, 2.14181936e+00, -3.34827796e-01, -8.07284435e-01, -8.49708166e-01,
|
||||
-8.31736592e-01, 6.33904552e-01, 4.35249821e-01, -9.13698624e-01, -2.96290563e-01,
|
||||
3.77906357e-02, -1.16936544e+00, -3.14920460e-03, -1.18537362e+00, 2.99624644e-01,
|
||||
1.76247250e+00, -6.49375825e-01, -1.89211809e-01, -1.00974570e+00, 1.47455608e+00,
|
||||
1.72728137e+00, 2.18072141e+00, -7.62571173e-01, -1.23504812e+00, 2.14290218e-01,
|
||||
-7.46888683e-01, 5.53627395e-01, -7.82076567e-03, 1.56933507e+00, 1.07155739e+00,
|
||||
-6.42903166e-01, -9.85900335e-01, -6.31873346e-01, -9.85430080e-01, 3.97933623e-01,
|
||||
-2.07587828e+00, 2.76612669e-01, -1.22060249e+00, -2.25139829e-01, 1.80572908e+00,
|
||||
-5.58028004e-01, -8.45859723e-01, -1.30829100e+00, -1.65904870e+00, -9.78603426e-01,
|
||||
-3.70256932e-01, 6.40194479e-01, 1.29842617e+00, 5.79764541e-01, -2.18955795e+00,
|
||||
-6.34491122e-01, 2.83457214e-01, 2.71316544e-01, 5.79996139e-01, -1.90426727e+00,
|
||||
-2.20898199e+00, 5.67839219e-01, -1.04623710e+00, 1.01192986e+00, 1.18567472e+00,
|
||||
-1.73342893e+00, -2.65618016e+00, 3.03138568e-01, -1.02196040e+00, -2.21750759e-01,
|
||||
-1.72682912e+00, -1.23679339e+00, 3.32640475e-01, -4.60601000e-01, -7.81932128e-02,
|
||||
4.11906483e+00, -1.89283131e+00, -3.88776684e-01, 1.80199833e+00, 1.96404455e+00,
|
||||
3.43852965e-01, -6.23609543e-01, 1.81733087e-01, 5.72130123e-01, 1.20715657e+00,
|
||||
-9.16486162e-01, -5.61833245e-01, 1.67641549e-01, -1.75329878e+00, 2.02727673e+00,
|
||||
-2.28164354e-01, 8.44422552e-01, -1.51806276e+00, 1.11571422e+00, -6.35541493e-01,
|
||||
-7.89951282e-02, 4.72008590e-01, -8.35642565e-01, 3.68813724e-01, -7.06411185e-01,
|
||||
-2.06091646e-01, 1.16843231e+00, 2.22169824e+00, -2.13768098e+00, 2.32776602e-01,
|
||||
2.52900016e-01, -1.14185849e+00, 1.66528537e-01, 1.98871626e+00, 6.88624657e-01,
|
||||
1.86755853e-01, -2.60746884e-01, 2.14480822e-01, 5.74795125e-01, -1.38808062e-01,
|
||||
6.23677175e-01, -2.74784978e+00, -8.37018300e-02, -3.22071295e-01, 3.66767660e-01,
|
||||
-8.23091717e-01, -7.47733613e-02, 1.51128334e+00, -1.74266371e+00, -2.99285140e-01,
|
||||
-5.11163366e-01, 6.42039600e-01, 2.76048507e-01, -7.37616832e-01, 1.22339395e+00,
|
||||
-2.67566663e-01, -7.51730239e-02, 2.01868691e-01, 7.07868632e-01, -1.21711787e+00,
|
||||
-1.85687375e+00, 1.05200890e+00, 1.47295756e+00, 2.54890967e-01, -1.24936980e+00,
|
||||
-2.57051185e+00, 3.98733877e-01, -7.23513377e-01, 1.21540059e+00, 8.12283422e-01,
|
||||
1.65554595e+00, -1.17091747e+00, 1.34992672e-01, -1.26490262e+00, 1.90743067e+00,
|
||||
1.26996550e+00, 6.84984124e-01, -2.42826181e+00, 5.82274924e-01, -6.03997807e-02,
|
||||
-2.34897259e-01, -2.82126477e+00, 6.99213914e-01, -6.24173822e-01, 9.13698195e-01,
|
||||
2.30096444e+00, -7.69519522e-01, -2.05936269e+00, -5.04623275e-01, 9.51572220e-01,
|
||||
-1.04990530e+00, 9.29427177e-01, -1.00119016e+00, 5.58533219e-01, -1.96190366e+00,
|
||||
-2.19649662e+00, 2.76351981e-01, 1.00882502e+00, 1.77184378e+00, 1.52844587e+00,
|
||||
-6.11090570e-01, 8.38972820e-01, -1.19408219e+00, 1.09833108e+00, 1.79335203e+00,
|
||||
9.50652921e-01, 2.03016606e-01, -7.05328950e-01, 2.63976431e+00, 1.32128813e+00,
|
||||
-3.26324584e-01, -6.03144462e-01, -1.15795682e+00, -2.84347500e-01, -2.70637624e+00,
|
||||
8.99588322e-01, 1.16243638e+00, 6.23042073e-01, -1.05633172e+00, 7.74870856e-01,
|
||||
1.11703946e+00, 7.31498949e-01, 4.88889866e-02, 5.18543386e-01, -1.15303239e-01,
|
||||
-3.72740004e-01, 7.18707005e-01, -1.10160673e-02, -3.42219376e-01, -4.07108891e-01,
|
||||
1.46297984e+00, 2.21343521e+00, 1.36672760e+00, -1.42677666e+00, -1.53701751e+00,
|
||||
1.20834078e+00, 5.34986888e-01, -1.09136550e-01, 4.83101030e-01, 7.86715435e-01,
|
||||
1.04015999e-01, 6.21976525e-01, -2.08139696e+00, 6.95530731e-01, 1.03483749e+00,
|
||||
-1.35308249e+00, 4.56603819e-02, -2.25926466e-01, 2.43326854e-01, 6.16818669e-01,
|
||||
6.94683652e-02, -2.33814385e-01, -2.22136024e+00, 1.86899901e+00, 1.10748320e+00,
|
||||
1.16927626e+00, -2.45241826e+00, 1.27914126e+00, 1.60261128e+00, -1.94906569e+00,
|
||||
1.97845616e+00, -4.46554806e-01, -8.02072809e-01, -1.96479219e+00, 3.59615459e-01,
|
||||
-5.74916548e-01, -1.86520891e-01, 1.24436447e+00, -7.48666778e-01, -2.45964718e+00,
|
||||
-2.48723344e-01, 1.49576775e+00, 1.18547459e-01, -1.24812482e+00, 1.65059802e+00,
|
||||
-8.75251737e-01, -3.00917161e+00, -9.70460069e-01, -6.87370120e-01, -1.39008336e+00,
|
||||
-4.98646683e-01, 1.53959956e+00, 1.34417230e+00, 7.25609309e-01, -7.97696169e-01,
|
||||
-8.26531057e-01, -2.73695934e+00, 2.27172885e+00, 1.58063398e-01, -5.75734209e-01,
|
||||
-1.20968554e+00, 8.79594164e-01, -1.97505063e-01, 6.07633769e-01, -5.23534759e-01,
|
||||
5.39579521e-01, -1.43180248e+00, -1.31573180e+00, 2.06689061e-01, 8.44228287e-01,
|
||||
1.01539177e-01, 8.50313924e-01, 1.13773193e+00, -6.09337003e-01, 1.22573408e+00,
|
||||
1.60308325e+00, -3.58368736e+00, -1.44948284e+00, -1.41743392e+00, -5.61340107e-01,
|
||||
-9.68290606e-01, -2.02739053e+00, 2.71090499e-01, 2.51806453e+00, -9.34553301e-02,
|
||||
5.98489523e-01, 1.00383713e-01, 1.47096663e+00, -1.87702008e+00, -9.71287935e-01,
|
||||
1.36813300e+00, -1.05133427e-01, -7.45511518e-01, 1.15482681e-02, 7.41538344e-01,
|
||||
4.89211699e-01, 1.78611375e-01, -3.22591658e-01, -6.62753734e-01, -6.79941629e-01,
|
||||
-1.56662518e+00, -1.30972025e+00, -9.95839674e-01, 5.78534201e-01, -3.55251735e-01,
|
||||
-4.20144708e-02, 2.11099051e-01, -1.37500178e+00, 3.05860052e-01, 2.39801447e+00,
|
||||
1.06806434e-01, -4.31891309e-02, -5.92778723e-01, -2.33810000e-01, 2.73379933e-01,
|
||||
-8.91777478e-01, -5.54188105e-01, -7.29232486e-01, -2.61636425e-02, -2.56123061e+00,
|
||||
-1.82546639e+00 ]
|
||||
</p>
|
||||
<m shape='(108)'>
|
||||
[ 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03 ]
|
||||
</m>
|
||||
<names shape='(108)'>
|
||||
[ H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2 ]
|
||||
</names>
|
||||
</beads>
|
||||
<total_steps>5000</total_steps>
|
||||
<cell shape='(3, 3)'>
|
||||
[ 3.37259417e+01, 2.06511833e-15, 2.06511833e-15, 0.00000000e+00, 3.37259417e+01,
|
||||
2.06511833e-15, 0.00000000e+00, 0.00000000e+00, 3.37259417e+01 ]
|
||||
</cell>
|
||||
<forces>
|
||||
<socket>
|
||||
<port>31415</port>
|
||||
</socket>
|
||||
</forces>
|
||||
<output prefix=''>
|
||||
<properties shape='(6)' filename='tut1.md'>
|
||||
[ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin},
|
||||
kinetic_cv{kelvin} ]
|
||||
</properties>
|
||||
<properties stride='20' shape='(1)' filename='tut1.force'> [ atom_f{piconewton}(atom=0;bead=0) ] </properties>
|
||||
<trajectory format='pdb' filename='tut1.pos' stride='100' cell_units='angstrom'>positions{angstrom}</trajectory>
|
||||
<checkpoint stride='1000' filename='tut1.checkpoint'>6</checkpoint>
|
||||
</output>
|
||||
<prng>
|
||||
<state shape='(624)'>
|
||||
[ 2687888409, 4059721984, 529212847, 1944050140, 549951740,
|
||||
753730274, 4256902940, 3644633819, 1619935418, 2926854959,
|
||||
3845596702, 3377185214, 672656208, 1522275289, 2252162595,
|
||||
3840064745, 4027492069, 3675681571, 2579879846, 1816332499,
|
||||
4032401752, 1911816378, 303445975, 1468438718, 4013747657,
|
||||
1340600813, 2333908485, 2694837801, 4170600699, 2510847348,
|
||||
3039951471, 3744192067, 1926386446, 1272375545, 1414207521,
|
||||
66179398, 4083890893, 4151044133, 576437212, 1676792606,
|
||||
434309634, 1907904212, 552501071, 2721977900, 1774218030,
|
||||
2379944892, 895572049, 964207007, 855123501, 322370220,
|
||||
2071560835, 311075834, 2622627631, 3049706185, 2343013325,
|
||||
68709345, 1862864050, 3480897554, 1688711674, 3849088037,
|
||||
2335410691, 2553458415, 3853338058, 2210199727, 2794071459,
|
||||
2398176951, 3934057850, 1698758425, 1011318686, 1806201471,
|
||||
1034736815, 3855360847, 835665231, 2475925733, 233924796,
|
||||
3024757758, 2198530484, 3673044703, 1249768122, 3962863565,
|
||||
3357863236, 2995035040, 307264231, 726406611, 2449569067,
|
||||
2105792248, 2511154863, 1776943467, 1288186977, 1069459630,
|
||||
4142069906, 2662399901, 2976669074, 3587203732, 2374529826,
|
||||
1425481845, 228954896, 829104572, 3792121363, 2155121068,
|
||||
4012537920, 4004560763, 1828234324, 523136808, 212778594,
|
||||
2400962328, 2941249333, 941934455, 1185399473, 1989697055,
|
||||
3876270640, 2356595322, 2240658826, 1455744954, 1294764103,
|
||||
197281598, 3596260716, 1784450322, 4229237399, 2625160461,
|
||||
3437563840, 99534139, 4231199313, 4186457231, 1356327267,
|
||||
11955050, 694326214, 3281619587, 1501920361, 4047724237,
|
||||
254407815, 1209336385, 2469757968, 3247917043, 467877924,
|
||||
714928015, 1424369871, 2112691093, 961450464, 1302826015,
|
||||
1508195287, 2682046824, 1166405749, 130758490, 669915191,
|
||||
3325468865, 2863429703, 99481154, 2455859519, 3512819878,
|
||||
2058734245, 713709489, 92681358, 1270820689, 2875258344,
|
||||
4089059727, 2319856617, 3246994482, 2375401460, 3526989769,
|
||||
2037481502, 1523778672, 4277357577, 3378312673, 1761280988,
|
||||
385602812, 2806072191, 263793228, 3893867788, 1122562696,
|
||||
3292179677, 196613098, 1412940405, 437753556, 2089537898,
|
||||
3093827021, 2543771523, 2707596589, 4247024898, 423016972,
|
||||
1950202748, 619404510, 1524092033, 2603783903, 1668886628,
|
||||
1610491330, 203643004, 378998824, 3077420296, 1135622483,
|
||||
1741156718, 4043803158, 134627695, 3826076900, 2236198903,
|
||||
1299249975, 1841801847, 1664600294, 3214378313, 4189671272,
|
||||
3480243241, 2314880827, 726164864, 1258895459, 1021877225,
|
||||
57278710, 2540601428, 2729779922, 1740214549, 1640865107,
|
||||
1355185385, 2109593488, 2195506700, 672372257, 2178115007,
|
||||
1875949822, 1689867492, 385658740, 2445406785, 271863064,
|
||||
988127097, 1025468932, 2359419817, 30505704, 3740615491,
|
||||
302654725, 68322970, 3937476624, 1133164597, 2115798914,
|
||||
320399345, 783710429, 2653212426, 3534685928, 1799928422,
|
||||
3374564924, 140092188, 2838741355, 118331603, 3274090979,
|
||||
2536288199, 424964681, 2624886533, 930882804, 2205394448,
|
||||
2184146172, 676812400, 3846276446, 3664199786, 1428020191,
|
||||
174713762, 1742043028, 1988587715, 250315220, 3460710952,
|
||||
518855886, 3301263820, 3376830340, 1924596217, 3991359611,
|
||||
4018324691, 2736101407, 3348220756, 4134954748, 1014806456,
|
||||
811815211, 2969949177, 1648717003, 1095340695, 3941199066,
|
||||
1442177871, 2118024477, 3440070762, 2652513624, 2449760687,
|
||||
3263443330, 2902806218, 3234417117, 1849567332, 947381041,
|
||||
3667048364, 951549915, 3479164436, 3858250612, 331400252,
|
||||
2281345388, 2762215954, 3082365401, 683228175, 3454398927,
|
||||
970279118, 2070406438, 3049304524, 1693733059, 175159517,
|
||||
1769171565, 2762326718, 2494712358, 1596534753, 696283870,
|
||||
2018059673, 92137961, 494184422, 392011733, 1385029818,
|
||||
934252405, 333359117, 3764822796, 1330799844, 1968964095,
|
||||
1099463842, 3602247127, 2198538609, 99239880, 3666952197,
|
||||
1538751175, 687515492, 1759850188, 1784319556, 219306934,
|
||||
3607066683, 3549791334, 1244006176, 3168276190, 2506130029,
|
||||
934365798, 4125460139, 2267772610, 4123099235, 3145641762,
|
||||
2282867996, 947174487, 2735752579, 1153570283, 1214198797,
|
||||
3843855592, 226542409, 1556151146, 2140750114, 173612017,
|
||||
3793649149, 513160329, 1696259753, 2196908248, 4236321655,
|
||||
3978054768, 3076169778, 1237756707, 794294503, 2478806329,
|
||||
3270485108, 21511829, 3648378180, 2173244083, 390728983,
|
||||
1613278496, 245589104, 1871555825, 840092166, 2005126608,
|
||||
2086709055, 346538249, 755528088, 4150217063, 1800593080,
|
||||
2996189003, 223378615, 26641502, 1408725657, 1055486622,
|
||||
2783260926, 2418422845, 1425876347, 2681749907, 689577833,
|
||||
2439224882, 1119191698, 3284738598, 3248369824, 2184806341,
|
||||
3827067703, 1403375638, 2039560728, 2026930258, 1439858255,
|
||||
3646642925, 357706083, 801162144, 200302113, 843383109,
|
||||
3953988752, 803642989, 133507707, 1890262095, 2010928680,
|
||||
153102298, 62155903, 277159866, 3184049271, 3470490419,
|
||||
1263803797, 1744789719, 291191777, 2104793752, 3710673355,
|
||||
690715888, 3985842110, 2609560703, 850539005, 86744360,
|
||||
1737104979, 1863808169, 1774594416, 295814460, 349948339,
|
||||
2998856642, 2965669633, 1901828086, 3978738887, 1547972061,
|
||||
3099911135, 2005717380, 567557764, 4005749125, 2160875982,
|
||||
3708061218, 71131479, 4020136758, 2494015768, 1649237263,
|
||||
3904477723, 398737933, 1060721700, 1863476301, 370356512,
|
||||
3071414126, 2579819024, 1413367122, 2902740002, 111597792,
|
||||
3291486874, 2640531015, 3168695648, 2512654909, 3959449531,
|
||||
2099836667, 1724339088, 1513859793, 1867797563, 72940112,
|
||||
150365030, 2695841664, 1822792143, 1313669546, 2967322181,
|
||||
520611643, 353667991, 2717535171, 3765848346, 388428102,
|
||||
1356267895, 3512676772, 370279636, 3846898162, 230096495,
|
||||
1637173159, 611261822, 1005164736, 269482378, 3515088803,
|
||||
3384787851, 219854487, 3527128574, 1621986556, 2351564858,
|
||||
1464556636, 3969432414, 4241153635, 3481875215, 2028710485,
|
||||
2552303669, 398357876, 502240174, 2783848798, 3029135000,
|
||||
3389310739, 2505116094, 142532114, 3164584552, 2476051612,
|
||||
3402430270, 3909441351, 3427500434, 334653597, 3680534388,
|
||||
994471388, 3554495285, 1194116172, 2229772907, 1080120321,
|
||||
764714490, 2033099135, 14870392, 1699063853, 4063486208,
|
||||
1292743360, 2032090912, 72238972, 161094465, 1452285444,
|
||||
2672671278, 1692937611, 1323803845, 3240748400, 4018998180,
|
||||
747254077, 236045767, 3239449578, 983232024, 3337514013,
|
||||
1251769771, 3333700522, 410670915, 987407435, 2475716801,
|
||||
2872258033, 4098868775, 1252507952, 3804640001, 1349395704,
|
||||
3776831082, 2921973556, 4089719272, 2209056770, 4132418611,
|
||||
1349045766, 1096167788, 946557058, 2742739413, 675697683,
|
||||
981116951, 3762459934, 735892043, 2820765771, 3285067216,
|
||||
2160644040, 3791763118, 3326789900, 4049571064, 2680776632,
|
||||
3569204094, 65929649, 3389067210, 3597945585, 1844146738,
|
||||
2700511765, 329482853, 1760204187, 923334769, 4064120545,
|
||||
3501525441, 185277522, 1241941790, 3591317416, 417403194,
|
||||
1300287444, 568015210, 1937417620, 1293297106, 1132926831,
|
||||
2866724791, 3257502829, 2947848120, 3895316838, 522557077,
|
||||
3227142004, 3090084150, 1099385887, 281296826, 1305525858,
|
||||
4048212751, 1083053479, 1851665893, 2417839863, 1623516667,
|
||||
3571192609, 3711731288, 2688150423, 1385750380, 3001410324,
|
||||
3992036671, 438613795, 1675062808, 126103207, 3806023665,
|
||||
3378609204, 3872710810, 3254661971, 3271656093, 2954958773,
|
||||
2955771203, 943499290, 1783244758, 27256593, 2736330207,
|
||||
2854314347, 1414980118, 3499653814, 2716003330, 1906739972,
|
||||
2097871403, 833490830, 860249641, 1359898654, 681385897,
|
||||
768010275, 1337229341, 2176361026, 1243749829, 2535464086,
|
||||
3587794549, 257320265, 1799338138, 2326145708 ]
|
||||
</state>
|
||||
<seed>12345</seed>
|
||||
<set_pos>432</set_pos>
|
||||
<gauss> -8.30560467e-01</gauss>
|
||||
</prng>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='pile_g'>
|
||||
<tau> 1.03353433e+03</tau>
|
||||
<ethermo> 2.24648494e-02</ethermo>
|
||||
</thermostat>
|
||||
<timestep> 4.13413730e+01</timestep>
|
||||
<temperature> 7.91703800e-05</temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,742 +0,0 @@
|
||||
<simulation verbosity='high'>
|
||||
<beads natoms='108' nbeads='4'>
|
||||
<q shape='(4, 324)'>
|
||||
[ -1.83955900e+00, -2.24073938e+00, -1.08250020e+00, -5.70795599e-01, 7.32627980e+00,
|
||||
7.19210265e+00, -3.30615234e-01, 3.98119438e+00, 1.51691432e+00, 2.52717260e+00,
|
||||
-1.27666806e+00, 4.73413388e+00, 1.12126184e+00, 1.26764230e+00, 1.02704916e+01,
|
||||
1.29998780e+00, 3.73413588e+00, 1.61919862e+01, 5.88202729e+00, 8.04850032e+00,
|
||||
1.24311326e+01, 1.02078708e+01, 1.86360455e+00, 1.64012625e+01, 1.17619062e+00,
|
||||
4.24983476e-01, 2.55535965e+01, 1.65002846e-01, 5.34507262e+00, 2.73617602e+01,
|
||||
6.62641741e+00, 5.73764066e+00, 2.33893339e+01, 6.10026934e+00, 2.56958142e+00,
|
||||
2.92780910e+01, 2.01269291e+00, 8.69979574e+00, -6.33324249e-01, 1.14898211e+00,
|
||||
1.61301653e+01, 3.70551886e+00, 5.80295868e+00, 1.66782201e+01, 2.75413040e-01,
|
||||
5.71194979e+00, 1.32139518e+01, 7.47120998e+00, 2.90527832e+00, 1.26243247e+01,
|
||||
1.18688316e+01, 3.86777222e-01, 1.86473408e+01, 1.66542003e+01, 6.49634508e+00,
|
||||
1.76520477e+01, 1.52792529e+01, 9.56145353e+00, 1.16514109e+01, 1.76464481e+01,
|
||||
7.90247690e-01, 1.28040514e+01, 1.99445660e+01, 1.91319083e+00, 1.48232256e+01,
|
||||
2.81978021e+01, 7.47808952e+00, 1.73026463e+01, 2.15060634e+01, 7.95108626e+00,
|
||||
9.08836417e+00, 2.88452581e+01, -8.39364894e-01, 2.33095835e+01, -1.26661254e+00,
|
||||
-2.26048825e+00, 2.73659085e+01, 6.83034984e+00, 5.55328952e+00, 3.00964760e+01,
|
||||
-2.13570013e+00, 3.85462300e+00, 2.11139559e+01, 6.98601751e+00, -1.69779185e+00,
|
||||
2.02798593e+01, 8.98144417e+00, -1.83724239e+00, 2.74015435e+01, 1.70384301e+01,
|
||||
5.49534087e+00, 2.92028322e+01, 1.28972834e+01, 4.00538016e+00, 2.38450279e+01,
|
||||
1.73369977e+01, 6.37702010e-01, 2.23536671e+01, 2.24315602e+01, -9.17792114e-01,
|
||||
2.76922986e+01, 2.71486460e+01, 4.59352860e+00, 2.73738615e+01, 2.47996576e+01,
|
||||
3.50789080e+00, 2.24217692e+01, 2.85214338e+01, 1.27744386e+01, -3.16474409e+00,
|
||||
-4.32938118e+00, 1.23369331e+01, 5.19778303e+00, 6.29834102e+00, 1.65171169e+01,
|
||||
7.43433654e+00, -1.50763053e-01, 1.71757563e+01, 8.73504480e-02, 2.91427460e+00,
|
||||
1.37000162e+01, 3.58863547e-01, 1.16430675e+01, 1.33468414e+01, 7.88277760e+00,
|
||||
1.35602855e+01, 1.85311481e+01, 6.66308247e+00, 1.10802627e+01, 1.62994052e+01,
|
||||
1.15789465e+00, 1.73181503e+01, 9.33358989e+00, 3.82104623e-01, 2.45811794e+01,
|
||||
1.33131712e+01, 5.68071890e+00, 2.77946720e+01, 1.29013165e+01, 7.27837218e+00,
|
||||
2.09147450e+01, 1.84799695e+01, -1.43953367e+00, 2.88271546e+01, 1.06297113e+01,
|
||||
1.06874159e+01, 1.80009217e+00, 9.88791886e+00, 1.74750501e+01, 5.38215565e+00,
|
||||
1.75814278e+01, 1.64927163e+01, -7.22490057e-01, 1.59410372e+01, 1.21327342e+01,
|
||||
5.31684038e+00, 1.07398656e+01, 1.27687533e+01, 1.11831750e+01, 1.30396209e+01,
|
||||
1.78543512e+01, 1.53781269e+01, 1.74549497e+01, 1.69593034e+01, 1.25392544e+01,
|
||||
1.91056959e+01, 1.02634068e+01, 1.58723572e+01, 1.01017169e+01, 1.15340755e+01,
|
||||
2.42047249e+01, 8.82103648e+00, 1.74196163e+01, 2.71575865e+01, 1.42717489e+01,
|
||||
1.61565324e+01, 2.20042138e+01, 1.46526399e+01, 1.22238423e+01, 2.82739099e+01,
|
||||
1.32115234e+01, 2.28595316e+01, -3.43176969e-01, 9.94990444e+00, 3.15261979e+01,
|
||||
7.17743425e+00, 1.79725272e+01, 2.66047961e+01, -1.03202183e-01, 1.46786234e+01,
|
||||
2.03983934e+01, 6.75355215e+00, 1.21898998e+01, 2.68300650e+01, 1.28501206e+01,
|
||||
9.52256604e+00, 2.96146284e+01, 1.79253244e+01, 1.48734446e+01, 2.75889170e+01,
|
||||
7.84459536e+00, 2.04254604e+01, 2.29273727e+01, 1.86587003e+01, 1.36039471e+01,
|
||||
2.34500168e+01, 1.76328865e+01, 1.06667576e+01, 2.40841230e+01, 2.49370928e+01,
|
||||
1.38349803e+01, 3.01788493e+01, 2.19453967e+01, 1.96844070e+01, 2.17383789e+01,
|
||||
2.79207277e+01, 2.40109880e+01, 2.44652621e+00, 7.71232732e-01, 2.28150210e+01,
|
||||
4.44993033e+00, 6.32217106e+00, 2.86959872e+01, 6.16770811e+00, 2.54155030e+00,
|
||||
2.86295708e+01, 6.58513110e-01, 7.07847686e+00, 1.91416715e+01, 8.42657055e-01,
|
||||
1.09318699e+01, 2.21629487e+01, 3.26372053e+00, 1.85487891e+01, 2.42299255e+01,
|
||||
3.53057281e+00, 1.21895915e+01, 3.07759304e+01, 5.87270948e-01, 1.54581789e+01,
|
||||
2.21462069e+01, -3.29544187e+00, 2.17376848e+01, 2.08019829e+01, 5.74042948e+00,
|
||||
2.91126306e+01, 2.82616387e+01, 4.12726443e+00, 2.38117939e+01, 2.48604110e+01,
|
||||
-9.81005677e-02, 2.75017597e+01, 2.19769526e+01, 9.55679072e+00, -3.48501195e-01,
|
||||
2.15122044e+01, 1.35659683e+01, 4.45218017e+00, 2.70106862e+01, 1.84178475e+01,
|
||||
2.90258066e+00, 3.09038945e+01, 1.13784966e+01, 3.97619446e+00, 2.33776271e+01,
|
||||
1.09744756e+01, 9.48584489e+00, 2.30108491e+01, 1.65710971e+01, 1.59074187e+01,
|
||||
2.90437432e+01, 1.63990319e+01, 1.41164353e+01, 3.03675824e+01, 9.36100919e+00,
|
||||
1.59902897e+01, 2.19588417e+01, 9.65547975e+00, 2.31178969e+01, 2.07325650e+01,
|
||||
1.43025889e+01, 2.85076354e+01, 2.79531009e+01, 1.40545290e+01, 1.99579811e+01,
|
||||
2.86838426e+01, 1.23353706e+01, 2.65845766e+01, 2.36116501e+01, 2.56191152e+01,
|
||||
5.93663687e+00, 2.14810798e+01, 3.18962824e+01, 6.43104769e+00, 2.61566331e+01,
|
||||
3.11398548e+01, 2.04112055e+00, 2.78161522e+01, 2.39026490e+01, 3.29230633e+00,
|
||||
2.35872061e+01, 1.92586393e+01, 9.42997765e+00, 2.18868541e+01, 2.93005866e+01,
|
||||
1.56731672e+01, 2.57892309e+01, 3.08659127e+01, 1.04565213e+01, 2.89111102e+01,
|
||||
2.23973168e+01, 1.41543879e+01, 2.40352391e+01, 1.89355855e+01, 2.26713139e+01,
|
||||
2.60883570e+01, 2.53551683e+01, 3.10959184e+01, 2.56617570e+01, 2.53873006e+01,
|
||||
2.02938950e+01, 2.87914567e+01, 1.97522769e+01, 2.78202344e+01, -1.76425983e+00,
|
||||
-1.53558560e+00, -1.71338801e+00, -9.78599968e-01, 6.87902421e+00, 7.88543588e+00,
|
||||
5.47881861e-01, 3.64324940e+00, 1.39468482e+00, 3.60000249e+00, -9.28967610e-01,
|
||||
4.01716866e+00, 2.42995414e+00, 1.05628735e+00, 1.03627265e+01, 9.20694754e-01,
|
||||
4.29683694e+00, 1.64579850e+01, 6.19121450e+00, 7.68893688e+00, 1.23304998e+01,
|
||||
9.82833523e+00, 1.54814143e+00, 1.71545209e+01, 6.99417618e-01, 8.54622163e-02,
|
||||
2.48873966e+01, -3.11309329e-01, 6.97214120e+00, 2.66220741e+01, 5.25625287e+00,
|
||||
7.68138067e+00, 2.39284370e+01, 6.25528626e+00, 3.07873577e+00, 3.00882100e+01,
|
||||
1.15270468e+00, 8.88014098e+00, 3.00512398e-01, 9.30446242e-01, 1.71408264e+01,
|
||||
3.50661823e+00, 5.83759203e+00, 1.72729331e+01, 3.34582087e-01, 5.40503488e+00,
|
||||
1.24459036e+01, 5.56073866e+00, 1.21588195e+00, 1.31551680e+01, 1.27378351e+01,
|
||||
-4.66813441e-01, 1.87703376e+01, 1.69486235e+01, 6.75076580e+00, 1.83449120e+01,
|
||||
1.48488718e+01, 9.47340998e+00, 1.17932793e+01, 1.67868142e+01, 6.10952151e-01,
|
||||
1.27008444e+01, 2.15901214e+01, 1.76087373e+00, 1.40248834e+01, 2.78953850e+01,
|
||||
6.51618548e+00, 1.72532108e+01, 2.04694567e+01, 7.36556309e+00, 9.99912211e+00,
|
||||
2.91964532e+01, -7.06531579e-01, 2.27219694e+01, -1.31954187e+00, -1.54612461e+00,
|
||||
2.75038363e+01, 6.70572831e+00, 5.21401215e+00, 2.84508378e+01, -1.38701455e+00,
|
||||
5.24874266e+00, 2.15644003e+01, 8.28914156e+00, -2.21199280e+00, 2.06411930e+01,
|
||||
9.08490967e+00, -3.69161804e-01, 2.79213183e+01, 1.67707124e+01, 5.77258212e+00,
|
||||
2.95534123e+01, 1.29379476e+01, 5.27372097e+00, 2.29618317e+01, 1.82846335e+01,
|
||||
5.50365226e-01, 2.32915342e+01, 2.26003508e+01, -3.23975407e-01, 2.71026192e+01,
|
||||
2.69864390e+01, 5.25571146e+00, 2.84281121e+01, 2.43362803e+01, 4.19783582e+00,
|
||||
2.23458941e+01, 2.89351055e+01, 1.30027038e+01, -2.89260409e+00, -3.32667625e+00,
|
||||
1.24700611e+01, 5.45576814e+00, 6.79907186e+00, 1.69263149e+01, 5.70732090e+00,
|
||||
1.52975089e-01, 1.72152577e+01, -5.86473536e-01, 2.60910235e+00, 1.39562777e+01,
|
||||
1.10496755e+00, 9.89893108e+00, 1.27550907e+01, 6.50405608e+00, 1.44860215e+01,
|
||||
1.84418079e+01, 6.98755864e+00, 1.14378627e+01, 1.73685838e+01, 1.03634629e+00,
|
||||
1.72542968e+01, 9.36166090e+00, 1.26996989e+00, 2.48970836e+01, 1.35415180e+01,
|
||||
4.84360499e+00, 2.82597230e+01, 1.28859648e+01, 7.62646315e+00, 2.08202186e+01,
|
||||
1.82323636e+01, -1.58242560e+00, 2.82645654e+01, 9.67026415e+00, 9.99521608e+00,
|
||||
1.48323928e+00, 1.06202054e+01, 1.74410916e+01, 5.30476845e+00, 1.68915394e+01,
|
||||
1.66028258e+01, -3.98602304e-01, 1.52286166e+01, 1.15951307e+01, 4.88875152e+00,
|
||||
1.16320855e+01, 1.18462368e+01, 1.17721604e+01, 1.30800856e+01, 1.72687237e+01,
|
||||
1.52362824e+01, 1.86182764e+01, 1.72413013e+01, 1.32638271e+01, 1.90927913e+01,
|
||||
1.01652528e+01, 1.60527418e+01, 9.59785151e+00, 1.16306603e+01, 2.32521891e+01,
|
||||
1.02733588e+01, 1.86418357e+01, 2.65319699e+01, 1.48920616e+01, 1.69296308e+01,
|
||||
2.24345192e+01, 1.44781142e+01, 1.16768928e+01, 2.87742833e+01, 1.26440243e+01,
|
||||
2.31651077e+01, 1.09153308e+00, 9.32620240e+00, 3.18068970e+01, 5.91156305e+00,
|
||||
1.82338682e+01, 2.68163992e+01, -6.10171355e-01, 1.56193643e+01, 1.99596118e+01,
|
||||
8.12957661e+00, 1.34391603e+01, 2.79448176e+01, 1.21148599e+01, 9.90095353e+00,
|
||||
2.95224900e+01, 1.88551608e+01, 1.63687321e+01, 2.81729033e+01, 7.75414361e+00,
|
||||
2.11290647e+01, 2.30983265e+01, 1.80818117e+01, 1.22179830e+01, 2.36227246e+01,
|
||||
1.85352948e+01, 1.00736995e+01, 2.52569655e+01, 2.39704097e+01, 1.44179838e+01,
|
||||
2.90993728e+01, 2.15195489e+01, 1.95569595e+01, 2.20162082e+01, 2.86888343e+01,
|
||||
2.38790793e+01, 1.81853851e+00, -8.62424353e-01, 2.30087081e+01, 3.67168316e+00,
|
||||
5.79906646e+00, 2.86237895e+01, 5.77923269e+00, 1.82976727e+00, 2.97992364e+01,
|
||||
-2.44824247e-01, 6.97483848e+00, 1.97479547e+01, 1.28907671e+00, 1.06238401e+01,
|
||||
2.22988651e+01, 3.36189040e+00, 1.99142865e+01, 2.56182622e+01, 4.87467917e+00,
|
||||
1.16104104e+01, 3.01052148e+01, -1.89720612e-01, 1.52853202e+01, 2.30601562e+01,
|
||||
-3.37897609e+00, 2.20210883e+01, 2.21023714e+01, 7.37999253e+00, 2.99827770e+01,
|
||||
2.83970918e+01, 5.06217176e+00, 2.39324034e+01, 2.36552267e+01, 3.97689851e-01,
|
||||
2.70250248e+01, 2.32913517e+01, 1.10207360e+01, 7.64503581e-01, 2.00178673e+01,
|
||||
1.37487336e+01, 4.25542754e+00, 2.60455321e+01, 1.69122386e+01, 2.31534587e+00,
|
||||
3.04356904e+01, 1.25406626e+01, 5.17675092e+00, 2.38621411e+01, 1.14515762e+01,
|
||||
9.75443924e+00, 2.25731071e+01, 1.62345346e+01, 1.68317268e+01, 2.84171490e+01,
|
||||
1.69913568e+01, 1.42827468e+01, 2.97526886e+01, 9.31307649e+00, 1.67785293e+01,
|
||||
2.17762297e+01, 8.96916957e+00, 2.19718340e+01, 2.22594418e+01, 1.33823144e+01,
|
||||
2.81207945e+01, 2.77005814e+01, 1.50622075e+01, 2.05455699e+01, 2.92151641e+01,
|
||||
1.30044976e+01, 2.67938258e+01, 2.17064822e+01, 2.45224793e+01, 5.39644288e+00,
|
||||
2.09907797e+01, 3.13381910e+01, 6.65786528e+00, 2.44267241e+01, 2.96324924e+01,
|
||||
1.59248807e+00, 2.81352950e+01, 2.52179231e+01, 3.21255854e+00, 2.29984530e+01,
|
||||
1.94459863e+01, 9.90712637e+00, 1.95242101e+01, 2.89090489e+01, 1.59338674e+01,
|
||||
2.54944440e+01, 3.14856070e+01, 1.10580434e+01, 2.91399127e+01, 2.38737698e+01,
|
||||
1.47156065e+01, 2.36566327e+01, 1.94718712e+01, 2.27327251e+01, 2.67255132e+01,
|
||||
2.57714727e+01, 3.15584870e+01, 2.55546714e+01, 2.55331520e+01, 2.06608588e+01,
|
||||
2.85241759e+01, 1.96187079e+01, 2.95686729e+01, -1.28506833e+00, -1.19627373e+00,
|
||||
-1.11505578e+00, -1.26613495e+00, 6.87769487e+00, 8.86664224e+00, 3.22672767e-01,
|
||||
3.60048900e+00, 1.75198909e+00, 3.39985912e+00, -5.38113592e-01, 4.40630180e+00,
|
||||
2.05527629e+00, 1.04780310e+00, 1.09245524e+01, 1.64433825e+00, 5.07925261e+00,
|
||||
1.66693862e+01, 6.34528032e+00, 6.84652464e+00, 1.30553942e+01, 9.19503930e+00,
|
||||
1.02559973e+00, 1.64900202e+01, 1.50883393e+00, 1.94153184e-01, 2.60419984e+01,
|
||||
2.23637168e-01, 5.88126235e+00, 2.68151686e+01, 6.09330009e+00, 6.41359349e+00,
|
||||
2.27265508e+01, 5.20417493e+00, 3.02351860e+00, 2.90727542e+01, 5.22759441e-01,
|
||||
9.07723226e+00, 3.74357289e-01, 5.28407017e-01, 1.77876299e+01, 3.40818122e+00,
|
||||
4.77500246e+00, 1.61051931e+01, -7.15798597e-01, 5.35494411e+00, 1.24396028e+01,
|
||||
5.26132317e+00, 3.65101881e+00, 1.45180281e+01, 1.20044556e+01, 6.47702685e-01,
|
||||
1.89647984e+01, 1.63575659e+01, 6.85886982e+00, 1.86666656e+01, 1.39918716e+01,
|
||||
9.63134562e+00, 1.21489398e+01, 1.79744053e+01, -4.65149892e-02, 1.28820467e+01,
|
||||
2.20848030e+01, 5.38141652e-01, 1.49773108e+01, 2.86234466e+01, 6.69460622e+00,
|
||||
1.70430908e+01, 2.03293501e+01, 7.46084699e+00, 9.27068140e+00, 2.87672652e+01,
|
||||
-1.77446797e+00, 2.31007533e+01, -1.61541146e+00, -1.44197270e+00, 2.59669452e+01,
|
||||
7.05366958e+00, 6.78973516e+00, 2.82048010e+01, -6.81707442e-01, 4.11224811e+00,
|
||||
2.33230735e+01, 7.64143788e+00, -1.30932484e+00, 2.00341346e+01, 8.43186122e+00,
|
||||
-3.23227570e-01, 2.88456685e+01, 1.71869485e+01, 5.59484664e+00, 2.86861878e+01,
|
||||
1.38255153e+01, 5.39986151e+00, 2.26670663e+01, 1.74856853e+01, 1.31353338e+00,
|
||||
2.27240963e+01, 2.26573999e+01, -6.43284767e-01, 2.75545414e+01, 2.65487243e+01,
|
||||
6.36781664e+00, 2.89591698e+01, 2.55204798e+01, 4.19690392e+00, 2.20492684e+01,
|
||||
2.90086623e+01, 1.29407803e+01, -3.28971533e+00, -3.59953707e+00, 1.30308691e+01,
|
||||
4.52526975e+00, 6.05334642e+00, 1.80200038e+01, 6.86934432e+00, -6.64799107e-01,
|
||||
1.77004927e+01, -1.08469207e+00, 2.66573197e+00, 1.33883962e+01, 1.77878946e+00,
|
||||
1.01478623e+01, 1.28332615e+01, 7.20488713e+00, 1.30030127e+01, 1.82890722e+01,
|
||||
5.45538575e+00, 1.26731818e+01, 1.64372459e+01, 1.13264799e+00, 1.68270761e+01,
|
||||
9.29480506e+00, 8.02789471e-01, 2.50004864e+01, 1.30397241e+01, 4.25942991e+00,
|
||||
2.82105770e+01, 1.34839369e+01, 6.59877473e+00, 1.96748658e+01, 1.90248344e+01,
|
||||
-7.34844927e-01, 2.61879859e+01, 1.06994814e+01, 1.04221404e+01, 1.19626201e+00,
|
||||
9.75063627e+00, 1.82675328e+01, 4.79479047e+00, 1.67169178e+01, 1.67708791e+01,
|
||||
-3.25796174e-01, 1.58140826e+01, 1.07514402e+01, 4.16021066e+00, 1.14190484e+01,
|
||||
1.20130431e+01, 1.10359921e+01, 1.23286945e+01, 1.73093633e+01, 1.60093426e+01,
|
||||
1.72472089e+01, 1.71555986e+01, 1.29595403e+01, 1.96515771e+01, 1.07779852e+01,
|
||||
1.55906451e+01, 1.04066011e+01, 1.06852174e+01, 2.41637389e+01, 9.33300851e+00,
|
||||
1.72769290e+01, 2.72366205e+01, 1.43344594e+01, 1.55444449e+01, 2.25613745e+01,
|
||||
1.54876710e+01, 1.23994150e+01, 2.77630051e+01, 1.24465157e+01, 2.22953455e+01,
|
||||
7.07224538e-01, 9.17225571e+00, 3.04541888e+01, 7.00444346e+00, 1.90451094e+01,
|
||||
2.68206460e+01, 2.12443190e-01, 1.40421608e+01, 2.16604155e+01, 8.76748146e+00,
|
||||
1.18599685e+01, 2.63467340e+01, 1.24514910e+01, 9.07508597e+00, 2.94452971e+01,
|
||||
1.81138604e+01, 1.65350863e+01, 2.76724408e+01, 8.10094240e+00, 2.03902238e+01,
|
||||
2.19891729e+01, 1.81613540e+01, 1.28241365e+01, 2.30836693e+01, 1.77077396e+01,
|
||||
1.07839643e+01, 2.43167076e+01, 2.35379387e+01, 1.43368823e+01, 2.99960368e+01,
|
||||
2.18020500e+01, 1.98836259e+01, 2.10543368e+01, 2.77564511e+01, 2.38873187e+01,
|
||||
2.63596088e+00, -8.45710736e-01, 2.26031998e+01, 4.94875239e+00, 6.06483058e+00,
|
||||
2.72420930e+01, 7.16044030e+00, 2.03664724e+00, 2.83819926e+01, 1.41474271e+00,
|
||||
6.86956553e+00, 1.90297274e+01, 2.08547446e-01, 1.17356589e+01, 2.20093707e+01,
|
||||
3.11015561e+00, 1.84015708e+01, 2.55258414e+01, 4.51413195e+00, 1.15060640e+01,
|
||||
3.04420577e+01, 2.05350822e-01, 1.59037463e+01, 2.20766378e+01, -3.08680082e+00,
|
||||
2.27928539e+01, 2.19423049e+01, 6.96063455e+00, 2.93175572e+01, 2.63580580e+01,
|
||||
4.17130592e+00, 2.37215427e+01, 2.48207538e+01, -1.10022388e+00, 2.72061284e+01,
|
||||
2.27735841e+01, 1.10983539e+01, 5.03790539e-01, 2.05447311e+01, 1.35069355e+01,
|
||||
4.99617490e+00, 2.74249691e+01, 1.74389534e+01, 2.12313453e+00, 3.09387285e+01,
|
||||
1.30390672e+01, 4.56728163e+00, 2.49467870e+01, 1.09552706e+01, 1.05134177e+01,
|
||||
2.26330821e+01, 1.67053853e+01, 1.63758180e+01, 2.83218004e+01, 1.73740024e+01,
|
||||
1.40724154e+01, 3.02682616e+01, 8.35484609e+00, 1.66575388e+01, 2.13501708e+01,
|
||||
1.01994161e+01, 2.34754835e+01, 2.17794008e+01, 1.46632688e+01, 2.78344546e+01,
|
||||
2.68554005e+01, 1.40368100e+01, 2.04864069e+01, 2.79509647e+01, 1.19193324e+01,
|
||||
2.79392613e+01, 2.26582097e+01, 2.45440331e+01, 6.30616900e+00, 2.13859764e+01,
|
||||
3.08849664e+01, 6.44869190e+00, 2.64928749e+01, 3.02400532e+01, 8.32685758e-01,
|
||||
2.74640627e+01, 2.40967712e+01, 3.18770838e+00, 2.27412709e+01, 1.85562433e+01,
|
||||
9.23151490e+00, 2.03983609e+01, 2.91681800e+01, 1.56979455e+01, 2.51695730e+01,
|
||||
3.07717754e+01, 1.06821424e+01, 2.92168363e+01, 2.36456995e+01, 1.45948324e+01,
|
||||
2.33527556e+01, 1.93047064e+01, 2.37746530e+01, 2.48248533e+01, 2.61599136e+01,
|
||||
3.04541638e+01, 2.58041186e+01, 2.56474296e+01, 2.02610796e+01, 2.85417157e+01,
|
||||
1.88972442e+01, 2.98568715e+01, -2.38586496e+00, -7.58828968e-01, -1.63156635e+00,
|
||||
-1.24260140e-01, 7.66170676e+00, 8.26519210e+00, 8.18582687e-01, 3.21215177e+00,
|
||||
8.71469426e-01, 3.32445560e+00, -1.32118548e+00, 3.91101312e+00, 2.32046567e+00,
|
||||
1.58370834e+00, 1.07292588e+01, 1.33792245e+00, 4.76690685e+00, 1.57155304e+01,
|
||||
5.60070334e+00, 7.35450929e+00, 1.13291649e+01, 9.38118665e+00, 1.32457406e+00,
|
||||
1.64112640e+01, 2.06694803e+00, -1.08774960e-01, 2.51995098e+01, 5.83962037e-01,
|
||||
6.14184963e+00, 2.60031487e+01, 7.65609079e+00, 5.60778423e+00, 2.29300579e+01,
|
||||
5.77114858e+00, 2.13679298e+00, 2.93327862e+01, 2.19806103e+00, 9.68222590e+00,
|
||||
1.57880111e+00, 3.14284164e-01, 1.73107320e+01, 3.17317841e+00, 5.31032205e+00,
|
||||
1.67722718e+01, -3.21992890e-01, 4.86044703e+00, 1.46302272e+01, 6.21744347e+00,
|
||||
3.23194778e+00, 1.36053502e+01, 1.20906550e+01, 1.05401318e+00, 1.89924170e+01,
|
||||
1.86500989e+01, 7.28920551e+00, 1.90214147e+01, 1.48608421e+01, 8.94579137e+00,
|
||||
1.17939437e+01, 1.76451822e+01, -2.16292241e-01, 1.27470176e+01, 2.10170183e+01,
|
||||
1.86340865e+00, 1.43620945e+01, 2.88854080e+01, 7.51715045e+00, 1.76892134e+01,
|
||||
2.12086589e+01, 7.40953137e+00, 8.90283609e+00, 2.82643224e+01, -1.81615954e+00,
|
||||
2.35425566e+01, -6.35391065e-01, -1.81429720e+00, 2.64341698e+01, 6.21091555e+00,
|
||||
5.43254354e+00, 2.75836921e+01, -9.47958758e-01, 4.71567619e+00, 2.21052659e+01,
|
||||
7.88771418e+00, -1.66841626e+00, 2.04914383e+01, 8.26675658e+00, -4.59229759e-01,
|
||||
2.71579580e+01, 1.68410204e+01, 5.00100432e+00, 2.90662447e+01, 1.29214242e+01,
|
||||
4.69089603e+00, 2.34759714e+01, 1.67656282e+01, 6.53854823e-01, 2.38352952e+01,
|
||||
2.17931036e+01, -1.01639060e+00, 2.72103570e+01, 2.59664262e+01, 4.89596274e+00,
|
||||
2.77674695e+01, 2.47617265e+01, 3.70839276e+00, 2.19495406e+01, 2.77068507e+01,
|
||||
1.33883490e+01, -2.96774368e+00, -3.88662826e+00, 1.21540528e+01, 4.88520987e+00,
|
||||
6.46250715e+00, 1.58502434e+01, 7.52061809e+00, -5.94010768e-01, 1.80041063e+01,
|
||||
-1.45785510e+00, 1.90361473e+00, 1.37682126e+01, 1.01096461e+00, 1.05140180e+01,
|
||||
1.32426632e+01, 7.30651107e+00, 1.44595448e+01, 1.87287975e+01, 5.98649586e+00,
|
||||
1.22746034e+01, 1.63100152e+01, 1.15741871e+00, 1.66981121e+01, 9.12913654e+00,
|
||||
-2.92667679e-01, 2.45886138e+01, 1.33050334e+01, 3.97377478e+00, 2.69467178e+01,
|
||||
1.42080442e+01, 6.64595078e+00, 2.01191284e+01, 1.86015542e+01, -1.75336417e+00,
|
||||
2.83471787e+01, 1.08620615e+01, 1.11988186e+01, 1.95253365e+00, 9.45047887e+00,
|
||||
1.75938537e+01, 4.23821913e+00, 1.70208034e+01, 1.60108143e+01, -1.22190668e+00,
|
||||
1.50766040e+01, 1.12165304e+01, 5.43990155e+00, 1.09933699e+01, 1.22850779e+01,
|
||||
1.16546326e+01, 1.23781385e+01, 1.80369686e+01, 1.53125056e+01, 1.73516609e+01,
|
||||
1.75785987e+01, 1.18313796e+01, 1.94046667e+01, 1.10166421e+01, 1.62979612e+01,
|
||||
9.66207941e+00, 1.08458701e+01, 2.37048314e+01, 8.44004940e+00, 1.70203943e+01,
|
||||
2.65757559e+01, 1.43027170e+01, 1.63790927e+01, 2.18182624e+01, 1.38144113e+01,
|
||||
1.12481654e+01, 2.87113704e+01, 1.23513270e+01, 2.18980717e+01, 5.17961694e-01,
|
||||
9.82158593e+00, 3.06003668e+01, 6.40959927e+00, 1.97382355e+01, 2.64666452e+01,
|
||||
-2.56886470e-01, 1.51138569e+01, 2.14756928e+01, 7.69843726e+00, 1.13280462e+01,
|
||||
2.53724470e+01, 1.17891597e+01, 9.16645548e+00, 2.85470480e+01, 1.83229821e+01,
|
||||
1.60641629e+01, 2.74309208e+01, 8.14336993e+00, 2.00104262e+01, 2.16691335e+01,
|
||||
1.90509791e+01, 1.35353858e+01, 2.30944654e+01, 1.79157296e+01, 1.01235942e+01,
|
||||
2.45385866e+01, 2.35448360e+01, 1.40749201e+01, 3.01972078e+01, 2.17768651e+01,
|
||||
2.03786050e+01, 2.10805498e+01, 2.76935947e+01, 2.44615615e+01, 3.05749628e+00,
|
||||
4.07414296e-01, 2.16336438e+01, 4.40657970e+00, 5.21060398e+00, 2.88299726e+01,
|
||||
7.01128437e+00, 8.79026008e-01, 2.85241186e+01, 3.14915946e-01, 7.07809470e+00,
|
||||
1.98625917e+01, 4.50200492e-03, 1.15863909e+01, 2.29376845e+01, 2.50348240e+00,
|
||||
1.86113050e+01, 2.47645618e+01, 3.74984924e+00, 1.16835156e+01, 3.00116656e+01,
|
||||
1.33610084e+00, 1.54039934e+01, 2.16664404e+01, -3.77318264e+00, 2.24073626e+01,
|
||||
2.17213138e+01, 6.32154759e+00, 2.91289015e+01, 2.80778040e+01, 4.04768899e+00,
|
||||
2.51637272e+01, 2.49482621e+01, -1.80258150e+00, 2.77649841e+01, 2.28639670e+01,
|
||||
9.52095023e+00, 1.12320744e+00, 2.11060298e+01, 1.35966775e+01, 4.52804356e+00,
|
||||
2.65933190e+01, 1.74870802e+01, 3.12917456e+00, 3.12581554e+01, 1.26369216e+01,
|
||||
4.24969839e+00, 2.28577555e+01, 1.09623135e+01, 9.61329928e+00, 2.31292240e+01,
|
||||
1.68635673e+01, 1.59562582e+01, 2.83134554e+01, 1.65993286e+01, 1.34061062e+01,
|
||||
3.07651009e+01, 8.60937322e+00, 1.58164516e+01, 2.15713342e+01, 9.77426434e+00,
|
||||
2.38239983e+01, 2.07170028e+01, 1.44272471e+01, 2.72915473e+01, 2.78094878e+01,
|
||||
1.46067375e+01, 2.02374654e+01, 2.83102299e+01, 1.21902457e+01, 2.73283465e+01,
|
||||
2.25040436e+01, 2.40201181e+01, 7.24105767e+00, 2.16659528e+01, 3.22281603e+01,
|
||||
6.56727556e+00, 2.67438472e+01, 3.14254999e+01, 1.00941523e+00, 2.72477648e+01,
|
||||
2.43062679e+01, 3.91537815e+00, 2.28206020e+01, 1.90617248e+01, 9.50661026e+00,
|
||||
1.95693791e+01, 2.99400820e+01, 1.67827219e+01, 2.52432494e+01, 3.09283864e+01,
|
||||
1.18433291e+01, 3.02997758e+01, 2.26469178e+01, 1.40818435e+01, 2.52061280e+01,
|
||||
1.93512323e+01, 2.29021542e+01, 2.65208970e+01, 2.53952117e+01, 3.08512322e+01,
|
||||
2.76076800e+01, 2.54724293e+01, 1.95719692e+01, 2.94254771e+01, 1.94406409e+01,
|
||||
2.73992646e+01 ]
|
||||
</q>
|
||||
<p shape='(4, 324)'>
|
||||
[ 1.40372994e-01, -1.70336384e+00, 6.37303020e-01, -3.60483257e-01, -1.10940109e+00,
|
||||
3.74869623e-01, -3.25735029e-01, 7.75472220e-01, 1.10757231e+00, -2.40493336e+00,
|
||||
-1.53716651e+00, 1.37041429e+00, 5.28228491e-01, 1.38616874e+00, -1.38581237e+00,
|
||||
-3.77690596e-01, 2.35773187e-01, 1.37036828e+00, 1.74363360e+00, 1.46668252e+00,
|
||||
9.19554977e-01, 1.46604384e+00, 7.17395153e-01, 1.16766357e+00, 5.74213643e-01,
|
||||
1.73367931e-01, -1.66161161e+00, 2.33212598e+00, -9.77285003e-01, 2.41575083e-01,
|
||||
-1.49585940e-01, -1.18522916e+00, 1.58553462e-01, -1.47168505e+00, -1.24387557e+00,
|
||||
7.68483391e-01, -1.56677579e+00, 8.39149463e-01, -7.60108832e-01, -1.39563512e-01,
|
||||
1.23618455e+00, -3.39699359e-01, -9.88358452e-01, -1.25161119e+00, 5.75688958e-01,
|
||||
3.34908289e-02, -1.57137545e+00, 9.54873978e-01, 2.21048523e-01, 3.15471131e+00,
|
||||
4.38424417e-01, -1.41296551e+00, -6.15293784e-01, 4.54568031e-01, 5.25912190e-01,
|
||||
1.10462750e+00, -7.33687512e-01, 3.51836732e-01, 1.11696908e+00, -1.75519514e-01,
|
||||
-9.87401261e-01, -1.00224818e+00, -2.06257599e+00, -8.69995365e-02, 1.96237139e-01,
|
||||
-1.55878661e+00, 2.06187113e+00, 5.21020731e-03, 2.35617406e-01, 1.59018004e+00,
|
||||
1.23310143e+00, -9.06287741e-01, 1.02772014e+00, -4.13278400e-01, -9.73895321e-01,
|
||||
1.26420822e+00, -6.00372594e-02, -8.86889397e-01, -1.35877237e+00, 1.26542138e-01,
|
||||
-1.96996606e+00, 1.16602982e+00, -1.87715811e+00, -1.07989580e+00, 1.52684255e-01,
|
||||
2.69202324e+00, -7.86764932e-01, -1.26792145e+00, -2.15985504e-01, 2.83847115e-01,
|
||||
-3.90074815e-02, -3.21827572e-01, 8.60927158e-01, 1.15174374e+00, -1.06395947e+00,
|
||||
6.56206723e-01, 1.71687653e+00, 1.88094551e+00, -1.41246651e-01, 6.67235507e-01,
|
||||
8.02729512e-01, -5.99750938e-01, 3.86175582e-01, 1.56674025e+00, 1.16770355e-01,
|
||||
-1.25058894e-01, -6.64317179e-01, -1.90732529e+00, -3.49443824e-01, -1.75313244e+00,
|
||||
-8.93802373e-01, -8.38911513e-02, -3.54765784e+00, 3.29189169e-01, -1.59470714e+00,
|
||||
2.28214169e-01, -2.04640475e+00, -1.21363021e+00, 4.43956386e-01, 1.98553407e+00,
|
||||
-6.41921427e-01, 8.31610867e-01, 2.37729074e-01, -1.96307860e+00, 5.83519443e-01,
|
||||
-9.23373803e-01, -2.72733993e-01, -6.80313749e-01, -4.21629881e-01, 8.24112349e-02,
|
||||
-2.02945940e-02, 4.70239760e-02, -8.87189426e-01, 2.62362546e-01, 2.90567277e-03,
|
||||
-5.77088646e-01, 8.63734028e-01, 2.12881273e-01, -1.84398318e+00, -1.27537888e+00,
|
||||
-8.96390165e-01, 8.67723220e-01, -7.13233254e-01, 9.98467053e-01, 1.20471615e+00,
|
||||
3.80364988e-02, -3.86066496e-01, 2.80482433e-01, -5.55953973e-01, 6.99483364e-01,
|
||||
-6.20862722e-01, -5.75941665e-01, -1.01810316e+00, 6.59129210e-01, 3.36528627e-01,
|
||||
1.19657571e+00, 1.16325245e+00, 1.38231876e+00, -1.62296272e+00, 7.73325492e-01,
|
||||
9.07953738e-01, -1.56020700e+00, 5.91276288e-01, -1.45072710e+00, 3.06498507e-01,
|
||||
1.02001412e+00, -7.79180574e-01, -1.09202701e+00, 8.60608247e-01, -8.12517020e-01,
|
||||
-3.29732754e-01, 7.95824769e-02, -3.53180396e-01, -6.92843090e-01, 8.08287670e-01,
|
||||
-1.31368002e+00, 8.92275005e-01, 7.74460553e-01, -4.16315357e-01, 4.13327475e-01,
|
||||
2.07077192e-01, -2.18589769e+00, -1.02281048e-01, 9.09167509e-02, -1.46835347e+00,
|
||||
1.23256338e+00, -3.07250057e-01, 2.46249432e-01, 7.74791555e-01, 3.98298680e-01,
|
||||
-5.39569195e-02, 4.73911005e-01, 1.79978269e+00, 6.49413046e-01, 1.44049305e+00,
|
||||
-7.54136523e-01, 6.85251391e-01, -1.03401786e+00, -1.07121945e+00, 1.15101429e+00,
|
||||
-6.78252322e-01, 3.66963136e-02, -1.11945652e-01, -4.17808375e-01, 9.68133746e-02,
|
||||
1.99069757e+00, 1.55013114e+00, -1.92882805e-02, 1.33795454e+00, 7.39452603e-01,
|
||||
3.77633950e-01, 1.81163711e+00, 2.58943819e+00, 1.29562203e+00, -1.48713547e+00,
|
||||
-9.55424888e-01, 3.46515063e-01, 4.16880974e-01, -1.14430760e+00, -5.41540342e-01,
|
||||
1.15617781e+00, -8.15311978e-01, -1.24131679e-01, -1.01785991e+00, -6.82587363e-01,
|
||||
1.34485087e+00, 3.95295976e-01, 3.61637052e-01, -4.79290805e-01, 1.96407902e-02,
|
||||
-6.96427808e-01, 9.65717585e-01, 4.63130635e-01, -4.12348950e-02, -6.14114134e-02,
|
||||
3.76909298e-01, 1.31464930e-01, -1.96943568e+00, -2.07138054e+00, 1.07506895e+00,
|
||||
-8.47693792e-02, 1.50838082e+00, 9.66357898e-01, 3.29832625e-02, 2.53592195e+00,
|
||||
-8.44613584e-01, -1.75528218e-01, -1.51432281e+00, -1.30241164e+00, -2.07575407e-01,
|
||||
-1.04844306e+00, -1.28575451e+00, 4.62727941e-01, 1.46590141e+00, -2.63004766e-01,
|
||||
-1.01898113e+00, -1.37875255e+00, -9.12918530e-01, 1.71033710e+00, 1.02893180e+00,
|
||||
-1.32634968e+00, 8.82495711e-02, -9.11997611e-01, -2.42094019e+00, -6.29467944e-01,
|
||||
8.08788619e-01, 1.94804910e+00, -8.72566500e-01, 9.20033720e-01, -1.72884793e+00,
|
||||
3.44191186e-01, 1.21733557e+00, 1.87515471e-01, 5.10808988e-02, 7.94329477e-01,
|
||||
-3.52316495e-01, -1.00945167e+00, 7.35146276e-01, 1.07654301e+00, 1.04930155e+00,
|
||||
-1.85826022e+00, -5.07927804e-01, -9.80771494e-01, -3.21767737e+00, -1.49676613e-01,
|
||||
-2.15647041e-01, -1.82770370e+00, 1.49469246e+00, -1.68826911e+00, 1.62663223e+00,
|
||||
-3.48742295e-01, -6.17863065e-01, -8.81308520e-01, 7.44925882e-01, 1.73070837e+00,
|
||||
-1.28410488e-01, 8.64089144e-01, 3.26440658e-01, 1.10448379e+00, -1.69522830e-01,
|
||||
-6.53776497e-01, 3.81864979e-01, -1.07760135e+00, -3.98562627e-01, 5.38128157e-01,
|
||||
-2.29754635e-01, -2.33407869e+00, -1.25116856e-01, -1.21131987e+00, 1.08298393e+00,
|
||||
1.51546625e-01, -3.56701517e-01, -9.98362812e-01, 1.03306121e-01, -4.42120758e-01,
|
||||
-3.94015959e-02, -8.12077182e-01, -5.72762073e-01, -8.31013031e-01, -1.16147494e+00,
|
||||
-7.35897383e-02, -1.09398682e-01, -1.40219599e+00, 9.63041766e-01, 6.60583424e-02,
|
||||
-1.71857732e+00, 1.99405396e-01, -8.84068189e-01, -2.18819685e-01, 2.21366910e+00,
|
||||
-1.84460428e+00, -1.05848347e+00, -1.53731311e+00, -2.25141079e-01, 8.55239543e-02,
|
||||
-5.64991535e-01, -1.11243253e+00, -1.48334114e+00, 2.85484662e-01, -5.98357857e-01,
|
||||
-5.62005083e-01, 5.18476929e-02, 7.20785662e-01, -9.21464830e-01, -4.17295452e-01,
|
||||
-7.06470111e-01, -2.07423207e+00, -2.82738840e-01, -7.05765425e-01, 5.71154019e-01,
|
||||
1.41402308e+00, 7.15224885e-01, -9.01571406e-01, -1.78966537e-01, -9.57855925e-01,
|
||||
1.92815188e+00, 3.67644067e-01, -7.77398627e-01, 3.75573158e-01, -1.27570871e+00,
|
||||
-1.56269598e-01, -1.20126128e+00, 5.64996896e-01, -1.45388556e+00, -4.64414199e-01,
|
||||
1.88714704e+00, 1.47969578e+00, -1.96063537e-01, 5.18755530e-01, 2.68937808e+00,
|
||||
-1.69730122e+00, -5.36576005e-01, 1.04962410e+00, 4.65512668e-01, 1.47912174e+00,
|
||||
8.46469352e-01, 8.08058567e-01, 1.13879268e+00, 6.34831145e-01, 1.43535434e+00,
|
||||
2.04580992e+00, 7.90686500e-04, 1.19722827e+00, -1.42644546e+00, 1.92405610e-01,
|
||||
8.14926140e-02, -2.36223884e-01, 1.16089456e+00, 2.24765430e-01, -1.32752285e+00,
|
||||
1.36642599e+00, -5.36742312e-01, 4.98821954e-01, 6.00651182e-01, -2.56801229e+00,
|
||||
-2.36250226e-01, -8.57842968e-01, -3.00915036e-01, 2.41807890e+00, 7.24711670e-01,
|
||||
1.36799087e+00, -1.78428862e-01, -3.59900038e-01, 3.42306822e-01, -3.98271527e-01,
|
||||
-1.30912096e-01, -5.36751004e-01, -6.45495166e-01, 3.16360509e-02, -6.38708513e-01,
|
||||
1.33860162e+00, 7.16436859e-01, 8.83639989e-01, -2.87900422e-01, -1.77363177e-01,
|
||||
1.75217790e-01, -2.41654433e+00, -8.13755792e-02, -7.71741152e-01, 1.33456387e+00,
|
||||
-5.10830196e-01, -1.10584683e+00, -1.31689363e+00, 1.17583053e+00, 6.77964594e-01,
|
||||
2.99895744e-01, 5.12719967e-01, 2.06867244e+00, -2.89182146e+00, 1.84494668e+00,
|
||||
3.10415200e-01, 1.64179666e+00, -2.18044104e+00, -9.27575571e-01, -8.07814665e-01,
|
||||
-1.85157068e-01, 5.86693996e-01, 1.60605927e+00, -1.03758631e-01, -9.65958485e-01,
|
||||
-9.06979038e-01, 5.61735019e-01, 3.35132784e-01, 6.02021180e-01, 1.76689554e-01,
|
||||
-3.36488706e-02, 1.45021360e+00, 6.70122973e-01, -1.71792295e-01, 8.29616451e-01,
|
||||
-8.05614322e-01, -2.58079407e+00, 1.01873565e+00, -3.81060235e-01, 1.00130704e+00,
|
||||
1.55674172e+00, 2.02125219e+00, -7.48802492e-01, 1.06649929e+00, -9.65493892e-01,
|
||||
-3.98926995e-01, 1.08567030e+00, -1.04009627e+00, 1.41394914e+00, 1.80976669e+00,
|
||||
-4.38932124e-01, -9.96116646e-01, 2.93325605e+00, -2.65850173e+00, -2.86627210e-01,
|
||||
-1.13380351e+00, 1.01776593e+00, 3.82798024e-01, -2.03015905e+00, -4.77705377e-01,
|
||||
-1.52497126e-01, -3.08097496e-01, -1.22388367e+00, 7.72589230e-01, -1.18620576e+00,
|
||||
7.03396905e-01, -6.07914021e-01, 1.36665589e+00, 3.05885200e-01, 8.68021103e-01,
|
||||
7.85645067e-01, 6.86344886e-01, 6.60054397e-02, 6.72872685e-01, -1.72147672e+00,
|
||||
-3.35687107e-01, 6.40280686e-01, 1.90765562e-01, -1.19759420e+00, 3.98723557e-01,
|
||||
1.01300503e+00, 3.15092859e-01, -7.48716523e-01, -6.31490429e-01, 5.03478302e-01,
|
||||
-7.97737020e-01, -3.64328563e-01, -6.84865111e-01, -5.96889804e-01, 8.97320299e-01,
|
||||
-2.74447207e-01, 8.96041854e-01, 8.62447243e-01, 1.14171036e+00, 1.89620219e+00,
|
||||
-2.03086042e-01, 1.21863991e+00, -7.08332672e-01, 8.65474351e-01, 8.84794271e-02,
|
||||
-7.38048949e-01, -3.29738572e-01, 6.25639096e-01, 8.73860305e-01, 1.32892575e+00,
|
||||
-1.08731164e+00, 7.42722680e-02, 1.10376262e+00, -2.70446460e-01, 4.84230480e-01,
|
||||
-7.49397372e-01, -1.22773789e-01, -1.73175160e+00, 1.00419017e+00, 4.18612640e-01,
|
||||
-1.19265354e+00, 1.89942453e+00, 2.16924392e-01, 1.98456504e+00, -4.47127896e-02,
|
||||
-8.13751338e-01, -1.57721515e+00, -1.51087464e+00, 1.49149818e-01, 3.34518489e-01,
|
||||
-1.49643992e+00, 3.14649899e-01, 2.07634343e+00, -6.04070136e-01, 1.87721508e+00,
|
||||
-4.06863898e-01, -7.83918757e-01, 2.03531050e-01, -7.64354284e-02, 3.31824344e-01,
|
||||
4.79012974e-01, 1.83535358e+00, 9.02286124e-01, -1.15207026e+00, 1.28672254e-01,
|
||||
-8.26157812e-01, 1.90407166e+00, -3.96264466e-01, 1.94392469e-01, -8.73100373e-01,
|
||||
-3.37468953e-03, 9.76466097e-01, 6.23291758e-02, -2.37497472e-01, 1.07993508e+00,
|
||||
-3.14201676e-01, 1.70621222e+00, -9.90965410e-02, 1.20753777e-01, -6.38441546e-01,
|
||||
1.41774776e+00, -5.80882309e-01, 1.09405908e+00, 3.93716017e-01, -1.28958167e+00,
|
||||
4.24488630e-01, 9.55061213e-01, 1.29635151e+00, -1.96475095e-01, 1.27366715e-01,
|
||||
1.13693192e-01, -1.99660506e+00, -7.38934810e-01, 1.27623410e+00, 1.67534486e+00,
|
||||
2.98512870e-01, 1.48183369e+00, 1.03842506e+00, -1.05881112e+00, 3.59296217e+00,
|
||||
2.33641006e+00, -4.44058636e-01, -7.05099765e-02, 3.21036779e-01, -1.92001349e-01,
|
||||
-1.42762638e+00, -4.05688476e-01, 4.80851634e-01, 4.74839401e-01, 1.26185094e+00,
|
||||
-1.05552598e-01, 5.56910980e-01, -5.32621114e-01, 9.34349181e-02, 2.56314544e-01,
|
||||
-1.74582311e+00, 4.17470989e-01, 2.29528051e+00, 2.62392322e-01, 3.18772657e-01,
|
||||
8.17214811e-01, -8.16325438e-01, -4.19774898e-01, -1.79953350e-02, 2.52742913e+00,
|
||||
-2.79795924e-02, -8.35211211e-01, -3.49992939e-01, 1.17976432e+00, 1.06455248e+00,
|
||||
4.99693771e-01, -3.25404106e-01, -1.19518002e+00, -1.12107657e+00, 7.08571829e-01,
|
||||
-1.32836392e+00, -4.05940531e-01, -1.62901886e+00, 1.94474528e-01, 5.69560181e-01,
|
||||
-1.16097389e+00, -9.55882892e-01, 8.43738270e-01, 9.60068854e-01, 3.04930133e-02,
|
||||
1.09691130e-01, 5.31002976e-01, -7.96127056e-02, -2.90684090e-02, -2.90427758e-01,
|
||||
6.26093036e-01, 6.57694112e-01, -4.85835995e-01, 1.80074318e-01, 1.12303284e+00,
|
||||
5.23912334e-01, 5.85300514e-01, 6.21565032e-01, -6.88438319e-01, 1.76104297e+00,
|
||||
4.69681129e-01, -1.50756131e+00, -2.35433970e+00, 2.20926618e-01, -1.59035655e+00,
|
||||
-2.16680752e-01, -1.09766225e+00, -3.66108880e-01, 6.72549669e-01, -1.39966389e+00,
|
||||
-2.64964223e-01, -4.47757200e-01, 5.31233808e-01, 1.84834139e+00, -6.02818313e-01,
|
||||
-1.44473483e+00, 1.52776447e-02, -7.93366554e-01, -1.90159337e+00, 1.74463595e-01,
|
||||
-2.11499652e+00, -2.25655780e+00, 1.18038845e+00, -3.70794733e-01, -8.67093500e-01,
|
||||
1.43290672e+00, -1.38210097e-01, 1.14792213e+00, 1.06670774e+00, 1.03103438e+00,
|
||||
-9.00433225e-02, -5.34357708e-01, -1.22908335e+00, -4.72611965e-01, 2.46111190e-01,
|
||||
-1.70561610e+00, 3.92682358e-01, -1.55756928e+00, -2.37928227e-01, 2.03059408e+00,
|
||||
-9.84120137e-01, -2.11053290e+00, 6.16981710e-01, -1.12243752e-01, -1.10029159e-02,
|
||||
9.02048435e-01, 8.56294718e-01, 1.13642549e+00, -1.50782750e+00, -3.72301949e-01,
|
||||
-1.66280307e+00, -1.38174795e+00, 8.97950650e-02, 5.55623559e-01, -6.05980874e-01,
|
||||
-7.05479352e-01, 7.04832792e-01, -3.20169261e-02, -5.46153623e-01, -4.23996939e-01,
|
||||
-1.87522120e+00, -4.41626784e-01, 2.28022755e+00, 1.41852748e+00, 7.22573260e-01,
|
||||
2.28863935e+00, 1.32648450e+00, -1.20732385e+00, 6.48320570e-01, -5.97367023e-02,
|
||||
1.26207462e-01, -2.04798081e+00, 1.13007921e+00, -1.71585140e-01, 3.14833129e-02,
|
||||
1.71558970e-01, 2.30236146e-01, -2.69742619e+00, 1.36832193e+00, -4.09947214e-01,
|
||||
-2.00570514e-01, 8.31050179e-01, 1.40744357e+00, -2.34268444e+00, -7.42098732e-03,
|
||||
1.03611120e+00, 2.06373254e+00, -5.02279592e-01, -7.01081635e-01, 1.25847835e-01,
|
||||
6.02231279e-02, -4.08815632e-01, -3.34433187e-01, 1.42676664e+00, -1.49454672e+00,
|
||||
-1.24564490e+00, 1.71269292e+00, 6.82206821e-01, 8.72601070e-01, -9.22460387e-01,
|
||||
4.55740724e-02, 1.33030508e+00, 6.53585708e-02, 3.13993497e-01, -2.11648823e+00,
|
||||
-1.36475580e-02, 2.51552262e+00, 9.25969768e-01, -6.52019962e-01, 2.03940799e+00,
|
||||
2.55910092e-01, -7.26525412e-01, -1.00207723e+00, 1.31950793e+00, -1.82967630e+00,
|
||||
-4.92805660e-01, 4.07867808e-01, 6.11026922e-02, -2.11979237e-01, -2.87253727e-01,
|
||||
1.11856203e+00, -2.21720426e-01, 1.84350017e+00, 7.84784426e-01, -1.49696700e+00,
|
||||
9.09038266e-01, -1.27156936e+00, 9.56717220e-02, -4.15656486e-01, 4.19788418e-01,
|
||||
-2.61691637e-01, -1.56861006e+00, -6.47659675e-01, -6.83293713e-01, 2.51621894e+00,
|
||||
-4.44034798e-01, 1.78185380e+00, 4.60785269e-01, -2.68311726e-01, 1.04600391e+00,
|
||||
-5.67576324e-01, 1.13507042e+00, -1.78393940e+00, -1.82719464e+00, -1.84508388e+00,
|
||||
-1.29303124e+00, 1.35664029e+00, -9.17173260e-01, 9.85863915e-01, 1.07223755e+00,
|
||||
8.84707496e-01, -1.37852063e+00, 6.19459586e-01, -2.93677966e-02, -3.18737198e-01,
|
||||
1.03094159e+00, 4.89778531e-01, 1.73667810e+00, -2.03090079e-01, 3.64701299e-01,
|
||||
3.48172075e-01, -1.54091587e+00, 1.04498049e+00, -1.28639737e+00, -4.71319136e-01,
|
||||
8.61169102e-01, 1.61610909e+00, 7.69597251e-01, 7.68227380e-01, 1.11224694e+00,
|
||||
8.48919769e-01, 3.12294367e-01, -4.93201021e-01, 6.42746189e-01, -2.27293413e-01,
|
||||
2.16505068e-01, 5.52193787e-01, -1.76108774e+00, -4.43454137e-01, -1.10836243e+00,
|
||||
7.49078941e-01, -5.26434049e-02, 4.23300776e-01, -1.66554395e+00, 3.10524219e-01,
|
||||
1.19480829e+00, -6.29200409e-01, 6.41552685e-01, 7.60530128e-01, -1.44429069e+00,
|
||||
-2.98038448e-01, 5.01177628e-01, 3.97341120e-01, 4.53467676e-01, -1.35725377e+00,
|
||||
9.43314195e-01, 2.15143758e+00, 3.94302672e-01, 2.26509780e-01, 9.59313828e-01,
|
||||
-1.66404768e-01, 1.65207595e-01, -2.39340233e+00, 3.14543001e+00, 1.05218765e+00,
|
||||
-8.14714579e-01, -3.05710147e-01, -1.74531477e+00, -3.64151538e-01, -2.09140760e-01,
|
||||
2.23739053e+00, 6.09477113e-01, 1.16899879e+00, 5.92967924e-01, -8.17673149e-01,
|
||||
-1.10420428e+00, 4.65350290e-01, 2.11023040e-03, 8.14863971e-01, 1.08315984e+00,
|
||||
-7.25860590e-02, -4.59896403e-01, 1.38164252e+00, 5.89336792e-01, 1.34519891e+00,
|
||||
-3.63277304e-01, 9.08232031e-01, 2.05775821e-01, 1.01268871e+00, 2.25900629e-01,
|
||||
1.11195741e+00, 1.46383492e+00, 1.15712737e+00, 1.37285918e+00, -3.27123406e-01,
|
||||
2.10121867e+00, 3.63728898e-01, -9.64451543e-01, 7.50304023e-02, 2.26045537e+00,
|
||||
-1.07848463e-01, -5.55058232e-01, 6.46210385e-01, -3.82173868e-01, 1.02724203e+00,
|
||||
4.75226625e-01, 2.63486832e-01, -1.87720616e-01, 2.66714045e+00, -1.37046410e-01,
|
||||
-9.47273326e-01, -2.21070556e+00, 5.16910020e-01, -1.00019802e+00, -6.10344773e-01,
|
||||
-1.23626760e-01, -7.78025616e-01, 3.54873800e-01, 1.32409224e+00, -4.96383871e-01,
|
||||
-8.45650299e-01, -7.06777204e-01, 7.74296088e-01, 5.40594697e-01, -2.35323920e+00,
|
||||
1.10574355e+00, -2.71490739e-01, 3.89486537e-01, -2.25716891e+00, 1.08161436e+00,
|
||||
-7.61396029e-01, -6.43902282e-01, 2.07071361e-01, -1.24311778e+00, 1.66718154e+00,
|
||||
-1.12540846e+00, 4.04848060e-01, 9.82172410e-01, -2.22704668e-01, -4.41651091e-01,
|
||||
8.11339257e-01, -1.71211605e+00, -6.16208091e-02, 8.56110168e-01, 5.66390166e-01,
|
||||
6.39785155e-01, 1.39973994e+00, -6.88244744e-01, 2.42634138e+00, 3.24544610e-01,
|
||||
4.48313772e-01, 7.45142689e-01, -7.23045807e-02, 1.83704141e-01, -1.47171323e+00,
|
||||
-7.09077372e-01, -6.01038702e-01, -8.75281454e-01, 5.13919915e-01, -6.60822470e-01,
|
||||
-1.43487765e+00, 7.49938057e-01, 2.83635875e-01, 3.07045512e-01, 1.48936195e+00,
|
||||
-2.17046249e-01, 2.04101206e+00, 6.02181940e-01, -1.78421830e-01, -8.17580831e-01,
|
||||
6.13386299e-01, 1.46247756e-01, -1.42514706e+00, -1.93940896e+00, -8.65275710e-01,
|
||||
1.47462311e-01, -4.02301576e-01, -9.63675890e-01, -1.84120948e+00, 8.14102917e-01,
|
||||
3.80760496e-01, 3.25900148e-01, -4.87843594e-01, -1.03508268e+00, 3.57676231e-01,
|
||||
-6.47622001e-01, 2.14181936e+00, -3.34827796e-01, -8.07284435e-01, -8.49708166e-01,
|
||||
-8.31736592e-01, 6.33904552e-01, 4.35249821e-01, -9.13698624e-01, -2.96290563e-01,
|
||||
3.77906357e-02, -1.16936544e+00, -3.14920460e-03, -1.18537362e+00, 2.99624644e-01,
|
||||
1.76247250e+00, -6.49375825e-01, -1.89211809e-01, -1.00974570e+00, 1.47455608e+00,
|
||||
1.72728137e+00, 2.18072141e+00, -7.62571173e-01, -1.23504812e+00, 2.14290218e-01,
|
||||
-7.46888683e-01, 5.53627395e-01, -7.82076567e-03, 1.56933507e+00, 1.07155739e+00,
|
||||
-6.42903166e-01, -9.85900335e-01, -6.31873346e-01, -9.85430080e-01, 3.97933623e-01,
|
||||
-2.07587828e+00, 2.76612669e-01, -1.22060249e+00, -2.25139829e-01, 1.80572908e+00,
|
||||
-5.58028004e-01, -8.45859723e-01, -1.30829100e+00, -1.65904870e+00, -9.78603426e-01,
|
||||
-3.70256932e-01, 6.40194479e-01, 1.29842617e+00, 5.79764541e-01, -2.18955795e+00,
|
||||
-6.34491122e-01, 2.83457214e-01, 2.71316544e-01, 5.79996139e-01, -1.90426727e+00,
|
||||
-2.20898199e+00, 5.67839219e-01, -1.04623710e+00, 1.01192986e+00, 1.18567472e+00,
|
||||
-1.73342893e+00, -2.65618016e+00, 3.03138568e-01, -1.02196040e+00, -2.21750759e-01,
|
||||
-1.72682912e+00, -1.23679339e+00, 3.32640475e-01, -4.60601000e-01, -7.81932128e-02,
|
||||
4.11906483e+00, -1.89283131e+00, -3.88776684e-01, 1.80199833e+00, 1.96404455e+00,
|
||||
3.43852965e-01, -6.23609543e-01, 1.81733087e-01, 5.72130123e-01, 1.20715657e+00,
|
||||
-9.16486162e-01, -5.61833245e-01, 1.67641549e-01, -1.75329878e+00, 2.02727673e+00,
|
||||
-2.28164354e-01, 8.44422552e-01, -1.51806276e+00, 1.11571422e+00, -6.35541493e-01,
|
||||
-7.89951282e-02, 4.72008590e-01, -8.35642565e-01, 3.68813724e-01, -7.06411185e-01,
|
||||
-2.06091646e-01, 1.16843231e+00, 2.22169824e+00, -2.13768098e+00, 2.32776602e-01,
|
||||
2.52900016e-01, -1.14185849e+00, 1.66528537e-01, 1.98871626e+00, 6.88624657e-01,
|
||||
1.86755853e-01, -2.60746884e-01, 2.14480822e-01, 5.74795125e-01, -1.38808062e-01,
|
||||
6.23677175e-01, -2.74784978e+00, -8.37018300e-02, -3.22071295e-01, 3.66767660e-01,
|
||||
-8.23091717e-01, -7.47733613e-02, 1.51128334e+00, -1.74266371e+00, -2.99285140e-01,
|
||||
-5.11163366e-01, 6.42039600e-01, 2.76048507e-01, -7.37616832e-01, 1.22339395e+00,
|
||||
-2.67566663e-01, -7.51730239e-02, 2.01868691e-01, 7.07868632e-01, -1.21711787e+00,
|
||||
-1.85687375e+00, 1.05200890e+00, 1.47295756e+00, 2.54890967e-01, -1.24936980e+00,
|
||||
-2.57051185e+00, 3.98733877e-01, -7.23513377e-01, 1.21540059e+00, 8.12283422e-01,
|
||||
1.65554595e+00, -1.17091747e+00, 1.34992672e-01, -1.26490262e+00, 1.90743067e+00,
|
||||
1.26996550e+00, 6.84984124e-01, -2.42826181e+00, 5.82274924e-01, -6.03997807e-02,
|
||||
-2.34897259e-01, -2.82126477e+00, 6.99213914e-01, -6.24173822e-01, 9.13698195e-01,
|
||||
2.30096444e+00, -7.69519522e-01, -2.05936269e+00, -5.04623275e-01, 9.51572220e-01,
|
||||
-1.04990530e+00, 9.29427177e-01, -1.00119016e+00, 5.58533219e-01, -1.96190366e+00,
|
||||
-2.19649662e+00, 2.76351981e-01, 1.00882502e+00, 1.77184378e+00, 1.52844587e+00,
|
||||
-6.11090570e-01, 8.38972820e-01, -1.19408219e+00, 1.09833108e+00, 1.79335203e+00,
|
||||
9.50652921e-01, 2.03016606e-01, -7.05328950e-01, 2.63976431e+00, 1.32128813e+00,
|
||||
-3.26324584e-01, -6.03144462e-01, -1.15795682e+00, -2.84347500e-01, -2.70637624e+00,
|
||||
8.99588322e-01, 1.16243638e+00, 6.23042073e-01, -1.05633172e+00, 7.74870856e-01,
|
||||
1.11703946e+00, 7.31498949e-01, 4.88889866e-02, 5.18543386e-01, -1.15303239e-01,
|
||||
-3.72740004e-01, 7.18707005e-01, -1.10160673e-02, -3.42219376e-01, -4.07108891e-01,
|
||||
1.46297984e+00, 2.21343521e+00, 1.36672760e+00, -1.42677666e+00, -1.53701751e+00,
|
||||
1.20834078e+00, 5.34986888e-01, -1.09136550e-01, 4.83101030e-01, 7.86715435e-01,
|
||||
1.04015999e-01, 6.21976525e-01, -2.08139696e+00, 6.95530731e-01, 1.03483749e+00,
|
||||
-1.35308249e+00, 4.56603819e-02, -2.25926466e-01, 2.43326854e-01, 6.16818669e-01,
|
||||
6.94683652e-02, -2.33814385e-01, -2.22136024e+00, 1.86899901e+00, 1.10748320e+00,
|
||||
1.16927626e+00, -2.45241826e+00, 1.27914126e+00, 1.60261128e+00, -1.94906569e+00,
|
||||
1.97845616e+00, -4.46554806e-01, -8.02072809e-01, -1.96479219e+00, 3.59615459e-01,
|
||||
-5.74916548e-01, -1.86520891e-01, 1.24436447e+00, -7.48666778e-01, -2.45964718e+00,
|
||||
-2.48723344e-01, 1.49576775e+00, 1.18547459e-01, -1.24812482e+00, 1.65059802e+00,
|
||||
-8.75251737e-01, -3.00917161e+00, -9.70460069e-01, -6.87370120e-01, -1.39008336e+00,
|
||||
-4.98646683e-01, 1.53959956e+00, 1.34417230e+00, 7.25609309e-01, -7.97696169e-01,
|
||||
-8.26531057e-01, -2.73695934e+00, 2.27172885e+00, 1.58063398e-01, -5.75734209e-01,
|
||||
-1.20968554e+00, 8.79594164e-01, -1.97505063e-01, 6.07633769e-01, -5.23534759e-01,
|
||||
5.39579521e-01, -1.43180248e+00, -1.31573180e+00, 2.06689061e-01, 8.44228287e-01,
|
||||
1.01539177e-01, 8.50313924e-01, 1.13773193e+00, -6.09337003e-01, 1.22573408e+00,
|
||||
1.60308325e+00, -3.58368736e+00, -1.44948284e+00, -1.41743392e+00, -5.61340107e-01,
|
||||
-9.68290606e-01, -2.02739053e+00, 2.71090499e-01, 2.51806453e+00, -9.34553301e-02,
|
||||
5.98489523e-01, 1.00383713e-01, 1.47096663e+00, -1.87702008e+00, -9.71287935e-01,
|
||||
1.36813300e+00, -1.05133427e-01, -7.45511518e-01, 1.15482681e-02, 7.41538344e-01,
|
||||
4.89211699e-01, 1.78611375e-01, -3.22591658e-01, -6.62753734e-01, -6.79941629e-01,
|
||||
-1.56662518e+00, -1.30972025e+00, -9.95839674e-01, 5.78534201e-01, -3.55251735e-01,
|
||||
-4.20144708e-02, 2.11099051e-01, -1.37500178e+00, 3.05860052e-01, 2.39801447e+00,
|
||||
1.06806434e-01, -4.31891309e-02, -5.92778723e-01, -2.33810000e-01, 2.73379933e-01,
|
||||
-8.91777478e-01, -5.54188105e-01, -7.29232486e-01, -2.61636425e-02, -2.56123061e+00,
|
||||
-1.82546639e+00 ]
|
||||
</p>
|
||||
<m shape='(108)'>
|
||||
[ 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03, 3.67494322e+03,
|
||||
3.67494322e+03, 3.67494322e+03, 3.67494322e+03 ]
|
||||
</m>
|
||||
<names shape='(108)'>
|
||||
[ H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2, H2, H2,
|
||||
H2, H2, H2 ]
|
||||
</names>
|
||||
</beads>
|
||||
<total_steps>100000</total_steps>
|
||||
<cell shape='(3, 3)'>
|
||||
[ 3.37259417e+01, 2.06511833e-15, 2.06511833e-15, 0.00000000e+00, 3.37259417e+01,
|
||||
2.06511833e-15, 0.00000000e+00, 0.00000000e+00, 3.37259417e+01 ]
|
||||
</cell>
|
||||
<forces>
|
||||
<socket>
|
||||
<port>31415</port>
|
||||
</socket>
|
||||
</forces>
|
||||
<output prefix=''>
|
||||
<properties shape='(8)' filename='tut2a.md'>
|
||||
[ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin},
|
||||
kinetic_cv{kelvin}, pressure_cv{megapascal}, volume ]
|
||||
</properties>
|
||||
<properties stride='20' shape='(1)' filename='tut2a.force'> [ atom_f{piconewton}(atom=0;bead=0) ] </properties>
|
||||
<trajectory format='pdb' filename='tut2a.pos' stride='100' cell_units='angstrom'>positions{angstrom}</trajectory>
|
||||
<checkpoint stride='1000' filename='tut2a.checkpoint'/>
|
||||
</output>
|
||||
<prng>
|
||||
<state shape='(624)'>
|
||||
[ 2687888409, 4059721984, 529212847, 1944050140, 549951740,
|
||||
753730274, 4256902940, 3644633819, 1619935418, 2926854959,
|
||||
3845596702, 3377185214, 672656208, 1522275289, 2252162595,
|
||||
3840064745, 4027492069, 3675681571, 2579879846, 1816332499,
|
||||
4032401752, 1911816378, 303445975, 1468438718, 4013747657,
|
||||
1340600813, 2333908485, 2694837801, 4170600699, 2510847348,
|
||||
3039951471, 3744192067, 1926386446, 1272375545, 1414207521,
|
||||
66179398, 4083890893, 4151044133, 576437212, 1676792606,
|
||||
434309634, 1907904212, 552501071, 2721977900, 1774218030,
|
||||
2379944892, 895572049, 964207007, 855123501, 322370220,
|
||||
2071560835, 311075834, 2622627631, 3049706185, 2343013325,
|
||||
68709345, 1862864050, 3480897554, 1688711674, 3849088037,
|
||||
2335410691, 2553458415, 3853338058, 2210199727, 2794071459,
|
||||
2398176951, 3934057850, 1698758425, 1011318686, 1806201471,
|
||||
1034736815, 3855360847, 835665231, 2475925733, 233924796,
|
||||
3024757758, 2198530484, 3673044703, 1249768122, 3962863565,
|
||||
3357863236, 2995035040, 307264231, 726406611, 2449569067,
|
||||
2105792248, 2511154863, 1776943467, 1288186977, 1069459630,
|
||||
4142069906, 2662399901, 2976669074, 3587203732, 2374529826,
|
||||
1425481845, 228954896, 829104572, 3792121363, 2155121068,
|
||||
4012537920, 4004560763, 1828234324, 523136808, 212778594,
|
||||
2400962328, 2941249333, 941934455, 1185399473, 1989697055,
|
||||
3876270640, 2356595322, 2240658826, 1455744954, 1294764103,
|
||||
197281598, 3596260716, 1784450322, 4229237399, 2625160461,
|
||||
3437563840, 99534139, 4231199313, 4186457231, 1356327267,
|
||||
11955050, 694326214, 3281619587, 1501920361, 4047724237,
|
||||
254407815, 1209336385, 2469757968, 3247917043, 467877924,
|
||||
714928015, 1424369871, 2112691093, 961450464, 1302826015,
|
||||
1508195287, 2682046824, 1166405749, 130758490, 669915191,
|
||||
3325468865, 2863429703, 99481154, 2455859519, 3512819878,
|
||||
2058734245, 713709489, 92681358, 1270820689, 2875258344,
|
||||
4089059727, 2319856617, 3246994482, 2375401460, 3526989769,
|
||||
2037481502, 1523778672, 4277357577, 3378312673, 1761280988,
|
||||
385602812, 2806072191, 263793228, 3893867788, 1122562696,
|
||||
3292179677, 196613098, 1412940405, 437753556, 2089537898,
|
||||
3093827021, 2543771523, 2707596589, 4247024898, 423016972,
|
||||
1950202748, 619404510, 1524092033, 2603783903, 1668886628,
|
||||
1610491330, 203643004, 378998824, 3077420296, 1135622483,
|
||||
1741156718, 4043803158, 134627695, 3826076900, 2236198903,
|
||||
1299249975, 1841801847, 1664600294, 3214378313, 4189671272,
|
||||
3480243241, 2314880827, 726164864, 1258895459, 1021877225,
|
||||
57278710, 2540601428, 2729779922, 1740214549, 1640865107,
|
||||
1355185385, 2109593488, 2195506700, 672372257, 2178115007,
|
||||
1875949822, 1689867492, 385658740, 2445406785, 271863064,
|
||||
988127097, 1025468932, 2359419817, 30505704, 3740615491,
|
||||
302654725, 68322970, 3937476624, 1133164597, 2115798914,
|
||||
320399345, 783710429, 2653212426, 3534685928, 1799928422,
|
||||
3374564924, 140092188, 2838741355, 118331603, 3274090979,
|
||||
2536288199, 424964681, 2624886533, 930882804, 2205394448,
|
||||
2184146172, 676812400, 3846276446, 3664199786, 1428020191,
|
||||
174713762, 1742043028, 1988587715, 250315220, 3460710952,
|
||||
518855886, 3301263820, 3376830340, 1924596217, 3991359611,
|
||||
4018324691, 2736101407, 3348220756, 4134954748, 1014806456,
|
||||
811815211, 2969949177, 1648717003, 1095340695, 3941199066,
|
||||
1442177871, 2118024477, 3440070762, 2652513624, 2449760687,
|
||||
3263443330, 2902806218, 3234417117, 1849567332, 947381041,
|
||||
3667048364, 951549915, 3479164436, 3858250612, 331400252,
|
||||
2281345388, 2762215954, 3082365401, 683228175, 3454398927,
|
||||
970279118, 2070406438, 3049304524, 1693733059, 175159517,
|
||||
1769171565, 2762326718, 2494712358, 1596534753, 696283870,
|
||||
2018059673, 92137961, 494184422, 392011733, 1385029818,
|
||||
934252405, 333359117, 3764822796, 1330799844, 1968964095,
|
||||
1099463842, 3602247127, 2198538609, 99239880, 3666952197,
|
||||
1538751175, 687515492, 1759850188, 1784319556, 219306934,
|
||||
3607066683, 3549791334, 1244006176, 3168276190, 2506130029,
|
||||
934365798, 4125460139, 2267772610, 4123099235, 3145641762,
|
||||
2282867996, 947174487, 2735752579, 1153570283, 1214198797,
|
||||
3843855592, 226542409, 1556151146, 2140750114, 173612017,
|
||||
3793649149, 513160329, 1696259753, 2196908248, 4236321655,
|
||||
3978054768, 3076169778, 1237756707, 794294503, 2478806329,
|
||||
3270485108, 21511829, 3648378180, 2173244083, 390728983,
|
||||
1613278496, 245589104, 1871555825, 840092166, 2005126608,
|
||||
2086709055, 346538249, 755528088, 4150217063, 1800593080,
|
||||
2996189003, 223378615, 26641502, 1408725657, 1055486622,
|
||||
2783260926, 2418422845, 1425876347, 2681749907, 689577833,
|
||||
2439224882, 1119191698, 3284738598, 3248369824, 2184806341,
|
||||
3827067703, 1403375638, 2039560728, 2026930258, 1439858255,
|
||||
3646642925, 357706083, 801162144, 200302113, 843383109,
|
||||
3953988752, 803642989, 133507707, 1890262095, 2010928680,
|
||||
153102298, 62155903, 277159866, 3184049271, 3470490419,
|
||||
1263803797, 1744789719, 291191777, 2104793752, 3710673355,
|
||||
690715888, 3985842110, 2609560703, 850539005, 86744360,
|
||||
1737104979, 1863808169, 1774594416, 295814460, 349948339,
|
||||
2998856642, 2965669633, 1901828086, 3978738887, 1547972061,
|
||||
3099911135, 2005717380, 567557764, 4005749125, 2160875982,
|
||||
3708061218, 71131479, 4020136758, 2494015768, 1649237263,
|
||||
3904477723, 398737933, 1060721700, 1863476301, 370356512,
|
||||
3071414126, 2579819024, 1413367122, 2902740002, 111597792,
|
||||
3291486874, 2640531015, 3168695648, 2512654909, 3959449531,
|
||||
2099836667, 1724339088, 1513859793, 1867797563, 72940112,
|
||||
150365030, 2695841664, 1822792143, 1313669546, 2967322181,
|
||||
520611643, 353667991, 2717535171, 3765848346, 388428102,
|
||||
1356267895, 3512676772, 370279636, 3846898162, 230096495,
|
||||
1637173159, 611261822, 1005164736, 269482378, 3515088803,
|
||||
3384787851, 219854487, 3527128574, 1621986556, 2351564858,
|
||||
1464556636, 3969432414, 4241153635, 3481875215, 2028710485,
|
||||
2552303669, 398357876, 502240174, 2783848798, 3029135000,
|
||||
3389310739, 2505116094, 142532114, 3164584552, 2476051612,
|
||||
3402430270, 3909441351, 3427500434, 334653597, 3680534388,
|
||||
994471388, 3554495285, 1194116172, 2229772907, 1080120321,
|
||||
764714490, 2033099135, 14870392, 1699063853, 4063486208,
|
||||
1292743360, 2032090912, 72238972, 161094465, 1452285444,
|
||||
2672671278, 1692937611, 1323803845, 3240748400, 4018998180,
|
||||
747254077, 236045767, 3239449578, 983232024, 3337514013,
|
||||
1251769771, 3333700522, 410670915, 987407435, 2475716801,
|
||||
2872258033, 4098868775, 1252507952, 3804640001, 1349395704,
|
||||
3776831082, 2921973556, 4089719272, 2209056770, 4132418611,
|
||||
1349045766, 1096167788, 946557058, 2742739413, 675697683,
|
||||
981116951, 3762459934, 735892043, 2820765771, 3285067216,
|
||||
2160644040, 3791763118, 3326789900, 4049571064, 2680776632,
|
||||
3569204094, 65929649, 3389067210, 3597945585, 1844146738,
|
||||
2700511765, 329482853, 1760204187, 923334769, 4064120545,
|
||||
3501525441, 185277522, 1241941790, 3591317416, 417403194,
|
||||
1300287444, 568015210, 1937417620, 1293297106, 1132926831,
|
||||
2866724791, 3257502829, 2947848120, 3895316838, 522557077,
|
||||
3227142004, 3090084150, 1099385887, 281296826, 1305525858,
|
||||
4048212751, 1083053479, 1851665893, 2417839863, 1623516667,
|
||||
3571192609, 3711731288, 2688150423, 1385750380, 3001410324,
|
||||
3992036671, 438613795, 1675062808, 126103207, 3806023665,
|
||||
3378609204, 3872710810, 3254661971, 3271656093, 2954958773,
|
||||
2955771203, 943499290, 1783244758, 27256593, 2736330207,
|
||||
2854314347, 1414980118, 3499653814, 2716003330, 1906739972,
|
||||
2097871403, 833490830, 860249641, 1359898654, 681385897,
|
||||
768010275, 1337229341, 2176361026, 1243749829, 2535464086,
|
||||
3587794549, 257320265, 1799338138, 2326145708 ]
|
||||
</state>
|
||||
<seed>12345</seed>
|
||||
<set_pos>432</set_pos>
|
||||
<gauss> -8.30560467e-01</gauss>
|
||||
</prng>
|
||||
<ensemble mode='npt'>
|
||||
<pressure> 0 </pressure>
|
||||
<barostat mode='isotropic'>
|
||||
<thermostat mode='langevin'>
|
||||
<tau units='femtosecond'> 250 </tau>
|
||||
</thermostat>
|
||||
<tau units='femtosecond'> 250 </tau>
|
||||
</barostat>
|
||||
<thermostat mode='pile_g'>
|
||||
<tau> 1.03353433e+03</tau>
|
||||
<ethermo> 2.24648494e-02</ethermo>
|
||||
</thermostat>
|
||||
<timestep> 4.13413730e+01</timestep>
|
||||
<temperature> 7.91703800e-05</temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,33 +0,0 @@
|
||||
<simulation verbosity='high'>
|
||||
<initialize nbeads='4'>
|
||||
<file mode='chk'> tutorial-1_RESTART </file>
|
||||
</initialize>
|
||||
<output prefix='tut2b'>
|
||||
<properties filename='md' stride='1'> [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, kinetic_cv{kelvin}, pressure_cv{megapascal}, volume ] </properties>
|
||||
<properties filename='force' stride='20'> [atom_f{piconewton}(atom=0;bead=0)] </properties>
|
||||
<trajectory filename='pos' stride='100' format='pdb' cell_units='angstrom'> positions{angstrom} </trajectory>
|
||||
<checkpoint filename='checkpoint' stride='1000' overwrite='True'/>
|
||||
</output>
|
||||
<total_steps>100000</total_steps>
|
||||
<prng> <seed> 31415 </seed> </prng>
|
||||
<forces>
|
||||
<socket mode="inet">
|
||||
<address>localhost</address>
|
||||
<port> 31415 </port>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='npt'>
|
||||
<barostat mode='isotropic'>
|
||||
<thermostat mode='langevin'>
|
||||
<tau units='femtosecond'> 250 </tau>
|
||||
</thermostat>
|
||||
<tau units='femtosecond'> 250 </tau>
|
||||
</barostat>
|
||||
<thermostat mode='pile_g'>
|
||||
<tau units='femtosecond'> 25 </tau>
|
||||
</thermostat>
|
||||
<timestep units='femtosecond'> 1 </timestep>
|
||||
<temperature units='kelvin'> 25 </temperature>
|
||||
<pressure> 0 </pressure>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,174 +0,0 @@
|
||||
CRYST1 39.115 39.115 39.115 90.00 90.00 90.00 P 1 1
|
||||
ATOM 1 H2 1 1 0.000 0.000 0.000 0.00 0.00 0
|
||||
ATOM 2 H2 1 1 5.582 5.582 0.000 0.00 0.00 0
|
||||
ATOM 3 H2 1 1 5.582 0.000 5.582 0.00 0.00 0
|
||||
ATOM 4 H2 1 1 0.000 5.582 5.582 0.00 0.00 0
|
||||
ATOM 5 H2 1 1 0.000 0.000 11.165 0.00 0.00 0
|
||||
ATOM 6 H2 1 1 5.582 5.582 11.165 0.00 0.00 0
|
||||
ATOM 7 H2 1 1 5.582 0.000 16.747 0.00 0.00 0
|
||||
ATOM 8 H2 1 1 0.000 5.582 16.747 0.00 0.00 0
|
||||
ATOM 9 H2 1 1 0.000 0.000 22.330 0.00 0.00 0
|
||||
ATOM 10 H2 1 1 5.582 5.582 22.330 0.00 0.00 0
|
||||
ATOM 11 H2 1 1 5.582 0.000 27.912 0.00 0.00 0
|
||||
ATOM 12 H2 1 1 0.000 5.582 27.912 0.00 0.00 0
|
||||
ATOM 13 H2 1 1 0.000 0.000 33.495 0.00 0.00 0
|
||||
ATOM 14 H2 1 1 5.582 5.582 33.495 0.00 0.00 0
|
||||
ATOM 15 H2 1 1 0.000 11.165 0.000 0.00 0.00 0
|
||||
ATOM 16 H2 1 1 5.582 16.747 0.000 0.00 0.00 0
|
||||
ATOM 17 H2 1 1 5.582 11.165 5.582 0.00 0.00 0
|
||||
ATOM 18 H2 1 1 0.000 16.747 5.582 0.00 0.00 0
|
||||
ATOM 19 H2 1 1 0.000 11.165 11.165 0.00 0.00 0
|
||||
ATOM 20 H2 1 1 5.582 16.747 11.165 0.00 0.00 0
|
||||
ATOM 21 H2 1 1 5.582 11.165 16.747 0.00 0.00 0
|
||||
ATOM 22 H2 1 1 0.000 16.747 16.747 0.00 0.00 0
|
||||
ATOM 23 H2 1 1 0.000 11.165 22.330 0.00 0.00 0
|
||||
ATOM 24 H2 1 1 5.582 16.747 22.330 0.00 0.00 0
|
||||
ATOM 25 H2 1 1 5.582 11.165 27.912 0.00 0.00 0
|
||||
ATOM 26 H2 1 1 0.000 16.747 27.912 0.00 0.00 0
|
||||
ATOM 27 H2 1 1 0.000 11.165 33.495 0.00 0.00 0
|
||||
ATOM 28 H2 1 1 5.582 16.747 33.495 0.00 0.00 0
|
||||
ATOM 29 H2 1 1 0.000 22.330 0.000 0.00 0.00 0
|
||||
ATOM 30 H2 1 1 5.582 27.912 0.000 0.00 0.00 0
|
||||
ATOM 31 H2 1 1 5.582 22.330 5.582 0.00 0.00 0
|
||||
ATOM 32 H2 1 1 0.000 27.912 5.582 0.00 0.00 0
|
||||
ATOM 33 H2 1 1 0.000 22.330 11.165 0.00 0.00 0
|
||||
ATOM 34 H2 1 1 5.582 27.912 11.165 0.00 0.00 0
|
||||
ATOM 35 H2 1 1 5.582 22.330 16.747 0.00 0.00 0
|
||||
ATOM 36 H2 1 1 0.000 27.912 16.747 0.00 0.00 0
|
||||
ATOM 37 H2 1 1 0.000 22.330 22.330 0.00 0.00 0
|
||||
ATOM 38 H2 1 1 5.582 27.912 22.330 0.00 0.00 0
|
||||
ATOM 39 H2 1 1 5.582 22.330 27.912 0.00 0.00 0
|
||||
ATOM 40 H2 1 1 0.000 27.912 27.912 0.00 0.00 0
|
||||
ATOM 41 H2 1 1 0.000 22.330 33.495 0.00 0.00 0
|
||||
ATOM 42 H2 1 1 5.582 27.912 33.495 0.00 0.00 0
|
||||
ATOM 43 H2 1 1 0.000 33.495 0.000 0.00 0.00 0
|
||||
ATOM 44 H2 1 1 5.582 33.495 5.582 0.00 0.00 0
|
||||
ATOM 45 H2 1 1 0.000 33.495 11.165 0.00 0.00 0
|
||||
ATOM 46 H2 1 1 5.582 33.495 16.747 0.00 0.00 0
|
||||
ATOM 47 H2 1 1 0.000 33.495 22.330 0.00 0.00 0
|
||||
ATOM 48 H2 1 1 5.582 33.495 27.912 0.00 0.00 0
|
||||
ATOM 49 H2 1 1 0.000 33.495 33.495 0.00 0.00 0
|
||||
ATOM 50 H2 1 1 11.165 0.000 0.000 0.00 0.00 0
|
||||
ATOM 51 H2 1 1 16.747 5.582 0.000 0.00 0.00 0
|
||||
ATOM 52 H2 1 1 16.747 0.000 5.582 0.00 0.00 0
|
||||
ATOM 53 H2 1 1 11.165 5.582 5.582 0.00 0.00 0
|
||||
ATOM 54 H2 1 1 11.165 0.000 11.165 0.00 0.00 0
|
||||
ATOM 55 H2 1 1 16.747 5.582 11.165 0.00 0.00 0
|
||||
ATOM 56 H2 1 1 16.747 0.000 16.747 0.00 0.00 0
|
||||
ATOM 57 H2 1 1 11.165 5.582 16.747 0.00 0.00 0
|
||||
ATOM 58 H2 1 1 11.165 0.000 22.330 0.00 0.00 0
|
||||
ATOM 59 H2 1 1 16.747 5.582 22.330 0.00 0.00 0
|
||||
ATOM 60 H2 1 1 16.747 0.000 27.912 0.00 0.00 0
|
||||
ATOM 61 H2 1 1 11.165 5.582 27.912 0.00 0.00 0
|
||||
ATOM 62 H2 1 1 11.165 0.000 33.495 0.00 0.00 0
|
||||
ATOM 63 H2 1 1 16.747 5.582 33.495 0.00 0.00 0
|
||||
ATOM 64 H2 1 1 11.165 11.165 0.000 0.00 0.00 0
|
||||
ATOM 65 H2 1 1 16.747 16.747 0.000 0.00 0.00 0
|
||||
ATOM 66 H2 1 1 16.747 11.165 5.582 0.00 0.00 0
|
||||
ATOM 67 H2 1 1 11.165 16.747 5.582 0.00 0.00 0
|
||||
ATOM 68 H2 1 1 11.165 11.165 11.165 0.00 0.00 0
|
||||
ATOM 69 H2 1 1 16.747 16.747 11.165 0.00 0.00 0
|
||||
ATOM 70 H2 1 1 16.747 11.165 16.747 0.00 0.00 0
|
||||
ATOM 71 H2 1 1 11.165 16.747 16.747 0.00 0.00 0
|
||||
ATOM 72 H2 1 1 11.165 11.165 22.330 0.00 0.00 0
|
||||
ATOM 73 H2 1 1 16.747 16.747 22.330 0.00 0.00 0
|
||||
ATOM 74 H2 1 1 16.747 11.165 27.912 0.00 0.00 0
|
||||
ATOM 75 H2 1 1 11.165 16.747 27.912 0.00 0.00 0
|
||||
ATOM 76 H2 1 1 11.165 11.165 33.495 0.00 0.00 0
|
||||
ATOM 77 H2 1 1 16.747 16.747 33.495 0.00 0.00 0
|
||||
ATOM 78 H2 1 1 11.165 22.330 0.000 0.00 0.00 0
|
||||
ATOM 79 H2 1 1 16.747 27.912 0.000 0.00 0.00 0
|
||||
ATOM 80 H2 1 1 16.747 22.330 5.582 0.00 0.00 0
|
||||
ATOM 81 H2 1 1 11.165 27.912 5.582 0.00 0.00 0
|
||||
ATOM 82 H2 1 1 11.165 22.330 11.165 0.00 0.00 0
|
||||
ATOM 83 H2 1 1 16.747 27.912 11.165 0.00 0.00 0
|
||||
ATOM 84 H2 1 1 16.747 22.330 16.747 0.00 0.00 0
|
||||
ATOM 85 H2 1 1 11.165 27.912 16.747 0.00 0.00 0
|
||||
ATOM 86 H2 1 1 11.165 22.330 22.330 0.00 0.00 0
|
||||
ATOM 87 H2 1 1 16.747 27.912 22.330 0.00 0.00 0
|
||||
ATOM 88 H2 1 1 16.747 22.330 27.912 0.00 0.00 0
|
||||
ATOM 89 H2 1 1 11.165 27.912 27.912 0.00 0.00 0
|
||||
ATOM 90 H2 1 1 11.165 22.330 33.495 0.00 0.00 0
|
||||
ATOM 91 H2 1 1 16.747 27.912 33.495 0.00 0.00 0
|
||||
ATOM 92 H2 1 1 11.165 33.495 0.000 0.00 0.00 0
|
||||
ATOM 93 H2 1 1 16.747 33.495 5.582 0.00 0.00 0
|
||||
ATOM 94 H2 1 1 11.165 33.495 11.165 0.00 0.00 0
|
||||
ATOM 95 H2 1 1 16.747 33.495 16.747 0.00 0.00 0
|
||||
ATOM 96 H2 1 1 11.165 33.495 22.330 0.00 0.00 0
|
||||
ATOM 97 H2 1 1 16.747 33.495 27.912 0.00 0.00 0
|
||||
ATOM 98 H2 1 1 11.165 33.495 33.495 0.00 0.00 0
|
||||
ATOM 99 H2 1 1 22.330 0.000 0.000 0.00 0.00 0
|
||||
ATOM 100 H2 1 1 27.912 5.582 0.000 0.00 0.00 0
|
||||
ATOM 101 H2 1 1 27.912 0.000 5.582 0.00 0.00 0
|
||||
ATOM 102 H2 1 1 22.330 5.582 5.582 0.00 0.00 0
|
||||
ATOM 103 H2 1 1 22.330 0.000 11.165 0.00 0.00 0
|
||||
ATOM 104 H2 1 1 27.912 5.582 11.165 0.00 0.00 0
|
||||
ATOM 105 H2 1 1 27.912 0.000 16.747 0.00 0.00 0
|
||||
ATOM 106 H2 1 1 22.330 5.582 16.747 0.00 0.00 0
|
||||
ATOM 107 H2 1 1 22.330 0.000 22.330 0.00 0.00 0
|
||||
ATOM 108 H2 1 1 27.912 5.582 22.330 0.00 0.00 0
|
||||
ATOM 109 H2 1 1 27.912 0.000 27.912 0.00 0.00 0
|
||||
ATOM 110 H2 1 1 22.330 5.582 27.912 0.00 0.00 0
|
||||
ATOM 111 H2 1 1 22.330 0.000 33.495 0.00 0.00 0
|
||||
ATOM 112 H2 1 1 27.912 5.582 33.495 0.00 0.00 0
|
||||
ATOM 113 H2 1 1 22.330 11.165 0.000 0.00 0.00 0
|
||||
ATOM 114 H2 1 1 27.912 16.747 0.000 0.00 0.00 0
|
||||
ATOM 115 H2 1 1 27.912 11.165 5.582 0.00 0.00 0
|
||||
ATOM 116 H2 1 1 22.330 16.747 5.582 0.00 0.00 0
|
||||
ATOM 117 H2 1 1 22.330 11.165 11.165 0.00 0.00 0
|
||||
ATOM 118 H2 1 1 27.912 16.747 11.165 0.00 0.00 0
|
||||
ATOM 119 H2 1 1 27.912 11.165 16.747 0.00 0.00 0
|
||||
ATOM 120 H2 1 1 22.330 16.747 16.747 0.00 0.00 0
|
||||
ATOM 121 H2 1 1 22.330 11.165 22.330 0.00 0.00 0
|
||||
ATOM 122 H2 1 1 27.912 16.747 22.330 0.00 0.00 0
|
||||
ATOM 123 H2 1 1 27.912 11.165 27.912 0.00 0.00 0
|
||||
ATOM 124 H2 1 1 22.330 16.747 27.912 0.00 0.00 0
|
||||
ATOM 125 H2 1 1 22.330 11.165 33.495 0.00 0.00 0
|
||||
ATOM 126 H2 1 1 27.912 16.747 33.495 0.00 0.00 0
|
||||
ATOM 127 H2 1 1 22.330 22.330 0.000 0.00 0.00 0
|
||||
ATOM 128 H2 1 1 27.912 27.912 0.000 0.00 0.00 0
|
||||
ATOM 129 H2 1 1 27.912 22.330 5.582 0.00 0.00 0
|
||||
ATOM 130 H2 1 1 22.330 27.912 5.582 0.00 0.00 0
|
||||
ATOM 131 H2 1 1 22.330 22.330 11.165 0.00 0.00 0
|
||||
ATOM 132 H2 1 1 27.912 27.912 11.165 0.00 0.00 0
|
||||
ATOM 133 H2 1 1 27.912 22.330 16.747 0.00 0.00 0
|
||||
ATOM 134 H2 1 1 22.330 27.912 16.747 0.00 0.00 0
|
||||
ATOM 135 H2 1 1 22.330 22.330 22.330 0.00 0.00 0
|
||||
ATOM 136 H2 1 1 27.912 27.912 22.330 0.00 0.00 0
|
||||
ATOM 137 H2 1 1 27.912 22.330 27.912 0.00 0.00 0
|
||||
ATOM 138 H2 1 1 22.330 27.912 27.912 0.00 0.00 0
|
||||
ATOM 139 H2 1 1 22.330 22.330 33.495 0.00 0.00 0
|
||||
ATOM 140 H2 1 1 27.912 27.912 33.495 0.00 0.00 0
|
||||
ATOM 141 H2 1 1 22.330 33.495 0.000 0.00 0.00 0
|
||||
ATOM 142 H2 1 1 27.912 33.495 5.582 0.00 0.00 0
|
||||
ATOM 143 H2 1 1 22.330 33.495 11.165 0.00 0.00 0
|
||||
ATOM 144 H2 1 1 27.912 33.495 16.747 0.00 0.00 0
|
||||
ATOM 145 H2 1 1 22.330 33.495 22.330 0.00 0.00 0
|
||||
ATOM 146 H2 1 1 27.912 33.495 27.912 0.00 0.00 0
|
||||
ATOM 147 H2 1 1 22.330 33.495 33.495 0.00 0.00 0
|
||||
ATOM 148 H2 1 1 33.495 0.000 0.000 0.00 0.00 0
|
||||
ATOM 149 H2 1 1 33.495 5.582 5.582 0.00 0.00 0
|
||||
ATOM 150 H2 1 1 33.495 0.000 11.165 0.00 0.00 0
|
||||
ATOM 151 H2 1 1 33.495 5.582 16.747 0.00 0.00 0
|
||||
ATOM 152 H2 1 1 33.495 0.000 22.330 0.00 0.00 0
|
||||
ATOM 153 H2 1 1 33.495 5.582 27.912 0.00 0.00 0
|
||||
ATOM 154 H2 1 1 33.495 0.000 33.495 0.00 0.00 0
|
||||
ATOM 155 H2 1 1 33.495 11.165 0.000 0.00 0.00 0
|
||||
ATOM 156 H2 1 1 33.495 16.747 5.582 0.00 0.00 0
|
||||
ATOM 157 H2 1 1 33.495 11.165 11.165 0.00 0.00 0
|
||||
ATOM 158 H2 1 1 33.495 16.747 16.747 0.00 0.00 0
|
||||
ATOM 159 H2 1 1 33.495 11.165 22.330 0.00 0.00 0
|
||||
ATOM 160 H2 1 1 33.495 16.747 27.912 0.00 0.00 0
|
||||
ATOM 161 H2 1 1 33.495 11.165 33.495 0.00 0.00 0
|
||||
ATOM 162 H2 1 1 33.495 22.330 0.000 0.00 0.00 0
|
||||
ATOM 163 H2 1 1 33.495 27.912 5.582 0.00 0.00 0
|
||||
ATOM 164 H2 1 1 33.495 22.330 11.165 0.00 0.00 0
|
||||
ATOM 165 H2 1 1 33.495 27.912 16.747 0.00 0.00 0
|
||||
ATOM 166 H2 1 1 33.495 22.330 22.330 0.00 0.00 0
|
||||
ATOM 167 H2 1 1 33.495 27.912 27.912 0.00 0.00 0
|
||||
ATOM 168 H2 1 1 33.495 22.330 33.495 0.00 0.00 0
|
||||
ATOM 169 H2 1 1 33.495 33.495 0.000 0.00 0.00 0
|
||||
ATOM 170 H2 1 1 33.495 33.495 11.165 0.00 0.00 0
|
||||
ATOM 171 H2 1 1 33.495 33.495 22.330 0.00 0.00 0
|
||||
ATOM 172 H2 1 1 33.495 33.495 33.495 0.00 0.00 0
|
||||
END
|
||||
@ -1,31 +0,0 @@
|
||||
<simulation verbosity='medium'>
|
||||
<initialize nbeads='16'>
|
||||
<file mode='chk'> tutorial-3_RESTART </file>
|
||||
</initialize>
|
||||
<output prefix='tut3_npt'>
|
||||
<properties filename='md' stride='1'> [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, kinetic_cv{kelvin}, pressure_cv{megapascal}, volume ] </properties>
|
||||
<trajectory filename='pos' stride='100' format='pdb' cell_units='angstrom'> positions{angstrom} </trajectory>
|
||||
<checkpoint filename='checkpoint' stride='1000' overwrite='True'/>
|
||||
</output>
|
||||
<total_steps> ??? </total_steps>
|
||||
<forces>
|
||||
<socket mode="???">
|
||||
<address>localhost</address>
|
||||
<port> 31415 </port>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='npt'>
|
||||
<barostat mode='???'>
|
||||
<thermostat mode='???'>
|
||||
<tau units='femtosecond'> ??? </tau>
|
||||
</thermostat>
|
||||
<tau units='femtosecond'> ??? </tau>
|
||||
</barostat>
|
||||
<thermostat mode='???'>
|
||||
<tau units='femtosecond'> ??? </tau>
|
||||
</thermostat>
|
||||
<timestep units='femtosecond'> ??? </timestep>
|
||||
<temperature units='kelvin'>25</temperature>
|
||||
<pressure> 0 </pressure>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,25 +0,0 @@
|
||||
<simulation verbosity='medium'>
|
||||
<initialize nbeads='16'>
|
||||
<file mode='pdb'> our_ref.pdb </file>
|
||||
<velocities mode='thermal' units='kelvin'> ??? </velocities>
|
||||
</initialize>
|
||||
<output prefix='tut3_nvt'>
|
||||
<properties filename='md' stride='1'> [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, kinetic_cv{kelvin}, pressure_cv{megapascal} ] </properties>
|
||||
<trajectory filename='pos' stride='100' format='pdb' cell_units='angstrom'> positions{angstrom} </trajectory>
|
||||
<checkpoint filename='checkpoint' stride='1000' overwrite='True'/>
|
||||
</output>
|
||||
<total_steps> ??? </total_steps>
|
||||
<forces>
|
||||
<socket mode="???">
|
||||
<address>localhost</address>
|
||||
<port> 31415 </port>
|
||||
</socket>
|
||||
</forces>
|
||||
<ensemble mode='nvt'>
|
||||
<thermostat mode='???'>
|
||||
<tau units='femtosecond'> ??? </tau>
|
||||
</thermostat>
|
||||
<timestep units='femtosecond'> ??? </timestep>
|
||||
<temperature units='kelvin'>25</temperature>
|
||||
</ensemble>
|
||||
</simulation>
|
||||
@ -1,60 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
"""Main script from which the simulation is run.
|
||||
|
||||
Deals with creation of the simulation object, reading the input file and
|
||||
initialising the system.
|
||||
|
||||
Run using:
|
||||
i-pi input_file.xml
|
||||
|
||||
Where 'input_file.xml' should be replaced by the name of the xml input file from
|
||||
which the system data will be read. For a description of how the input file
|
||||
should be formatted, see the reference manual.
|
||||
|
||||
Functions:
|
||||
main: Runs the simulation.
|
||||
"""
|
||||
|
||||
import sys
|
||||
from ipi.engine import simulation
|
||||
from ipi.inputs.simulation import InputSimulation
|
||||
from ipi.utils.io.io_xml import *
|
||||
from ipi.utils.messages import banner, help, verbosity
|
||||
|
||||
def main(file_name):
|
||||
"""Runs the simulation.
|
||||
|
||||
Will run automatically when the module is used as a script.
|
||||
"""
|
||||
|
||||
ifile = open(file_name,"r")
|
||||
xmlrestart = xml_parse_file(ifile) # Parses the file.
|
||||
ifile.close()
|
||||
|
||||
simrestart = InputSimulation()
|
||||
# Checks the input and partitions it appropriately.
|
||||
simrestart.parse(xmlrestart.fields[0][1])
|
||||
# Here we must do this manually; from here on everything should be automated by the messages classes
|
||||
if simrestart.verbosity.fetch() != "quiet" :
|
||||
banner()
|
||||
print " # i-pi starting from input file: ", file_name
|
||||
if simrestart.verbosity.fetch() != "quiet" and simrestart.verbosity.fetch() != "low" :
|
||||
print " --- begin input file content --- "
|
||||
ifile = open(file_name,"r")
|
||||
for line in ifile.readlines():
|
||||
print line,
|
||||
ifile.close()
|
||||
print " --- end input file content --- "
|
||||
|
||||
simul = simrestart.fetch() # Creates the appropriate simulation object.
|
||||
simul.run()
|
||||
|
||||
del simul
|
||||
|
||||
#This is what is run if the file is run as a script.
|
||||
if __name__ == '__main__':
|
||||
if (len(sys.argv) != 2):
|
||||
help()
|
||||
else:
|
||||
main(sys.argv[1])
|
||||
@ -1,14 +0,0 @@
|
||||
-- Source code directory --
|
||||
|
||||
* This is the main source directory.
|
||||
|
||||
* Files:
|
||||
- i-pi: Runs the simulation.
|
||||
|
||||
* Directories:
|
||||
- engine: Holds the modules containing the objects used during the
|
||||
simulation.
|
||||
- interfaces: Holds the modules containing the socket interface code.
|
||||
- utils: Holds the modules containing utility functions.
|
||||
- inputs: Holds the modules that deals with reading the input and the
|
||||
restart mechanism.
|
||||
@ -1 +0,0 @@
|
||||
__all__ = ["engine", "inputs", "interfaces", "utils"]
|
||||
@ -1,18 +0,0 @@
|
||||
-- Engine code directory --
|
||||
|
||||
* This is the directory containing all the major class definitions.
|
||||
|
||||
* Files:
|
||||
- atoms.py: Deals with classical simulations.
|
||||
- barostats.py: Deals with constant pressure simulations.
|
||||
- beads.py: Deals with quantum simulations.
|
||||
- cell.py: Deals with the simulation box.
|
||||
- ensembles.py: Deals with the different ensembles.
|
||||
- forces.py: Deals with creating the jobs to send to the driver code.
|
||||
- initializer.py: Deals with initialization of the simulation.
|
||||
- normalmodes.py: Deals with the normal mode transformations.
|
||||
- outputs.py: Deals with the output files.
|
||||
- properties.py: Deals with calculating all the output properties.
|
||||
- simulation.py: Deals with all the top level information, such as
|
||||
input/output.
|
||||
- thermostats.py: Deals with constant temperature simulations.
|
||||
@ -1,3 +0,0 @@
|
||||
__all__ = ["atoms", "cell", "simulation", "forces", "ensembles", "properties",
|
||||
"thermostats", "barostats", "beads", "outputs", "normalmodes",
|
||||
"initializer" ]
|
||||
@ -1,269 +0,0 @@
|
||||
"""Contains the classes which deal with the atoms.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Used for holding information about the atoms, including their positions, masses
|
||||
momenta and kinetic energy. Has separate classes for accessing the global
|
||||
arrays of atoms and for individual atoms.
|
||||
|
||||
Classes:
|
||||
Atom: Class with methods dealing with individual atoms.
|
||||
Atoms: Class with methods dealing with all the atoms.
|
||||
"""
|
||||
|
||||
__all__ = ['Atoms', 'Atom']
|
||||
|
||||
import numpy as np
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils import units
|
||||
|
||||
class Atom(dobject):
|
||||
"""Represent an atom, with position, velocity, mass and related properties.
|
||||
|
||||
This is actually only an interface to the Atoms class, i.e. only stores
|
||||
views of the large arrays which contain all the coordinates.
|
||||
|
||||
Attributes:
|
||||
kin: The kinetic energy of the atom.
|
||||
kstress: The contribution of the atom to the kinetic stress tensor.
|
||||
|
||||
Depend objects:
|
||||
p: The three components of the momentum of the atom.
|
||||
q: The three components of the position of the atom.
|
||||
m: The mass of the atom.
|
||||
name: The name of the atom.
|
||||
m3: An array of 3 elements with each element being the mass of the atom.
|
||||
Used when each degree of freedom needs to be divided by the mass.
|
||||
"""
|
||||
|
||||
def __init__(self, system, index):
|
||||
"""Initializes Atom.
|
||||
|
||||
Args:
|
||||
system: An Atoms object containing the required atom.
|
||||
index: An integer giving the index of the required atom in the atoms
|
||||
list. Note that indices start from 0.
|
||||
"""
|
||||
|
||||
dset(self,"p",system.p[3*index:3*index+3])
|
||||
dset(self,"q",system.q[3*index:3*index+3])
|
||||
dset(self,"m",system.m[index:index+1])
|
||||
dset(self,"name",system.names[index:index+1])
|
||||
dset(self,"m3",system.m3[3*index:3*index+3])
|
||||
|
||||
@property
|
||||
def kin(self):
|
||||
"""Calculates the contribution of the atom to the kinetic energy."""
|
||||
|
||||
return np.dot(self.p,self.p)/(2.0*self.m)
|
||||
|
||||
@property
|
||||
def kstress(self):
|
||||
"""Calculates the contribution of the atom to the kinetic stress
|
||||
tensor.
|
||||
"""
|
||||
|
||||
p = depstrip(self.p)
|
||||
ks = numpy.zeros((3,3),float)
|
||||
for i in range(3):
|
||||
for j in range(i,3):
|
||||
ks[i,j] = p[i]*p[j]
|
||||
return ks/self.m
|
||||
|
||||
|
||||
class Atoms(dobject):
|
||||
"""Storage for the atoms' positions, masses and velocities.
|
||||
|
||||
Everything is stored as 3*n sized contiguous arrays,
|
||||
and a convenience-access is provided through a list of Atom objects.
|
||||
|
||||
Attributes:
|
||||
natoms: The number of atoms.
|
||||
|
||||
Depend objects:
|
||||
p: An array giving the components of the atom positions.
|
||||
q: An array giving the components of the atom momenta.
|
||||
m: An array giving the atom masses.
|
||||
names: An array giving the atom names.
|
||||
m3: An array of 3*n elements where each element of m has been copied
|
||||
three times. Used when each degree of freedom needs to be divided
|
||||
by the mass.
|
||||
M: The total mass of all the atoms.
|
||||
kin: The total kinetic energy of the atoms. Depends on p and m3.
|
||||
kstress: The contribution of the atoms to the kinetic stress tensor.
|
||||
Depends on px, py, pz and m.
|
||||
qx: An array giving the x components of the positions.
|
||||
qy: An array giving the y components of the positions.
|
||||
qz: An array giving the z components of the positions.
|
||||
px: An array giving the x components of the momenta.
|
||||
py: An array giving the y components of the momenta.
|
||||
pz: An array giving the z components of the momenta.
|
||||
"""
|
||||
|
||||
|
||||
def __init__(self, natoms, _prebind=None):
|
||||
"""Initializes Atoms.
|
||||
|
||||
Each replica and the centroid coordinate are all held as Atoms objects,
|
||||
and so slices of the global position and momentum arrays must be used in
|
||||
the initialization so that they always agree with each other.
|
||||
|
||||
Args:
|
||||
natoms: An integer giving the number of atoms.
|
||||
_prebind: An optional tuple of four elements; a depend_array of length
|
||||
3*natoms for the positions, another for the momenta, a depend_array
|
||||
of length natoms for the masses and another for the names.
|
||||
"""
|
||||
|
||||
self.natoms = natoms
|
||||
|
||||
if _prebind is None:
|
||||
dset(self,"q",depend_array(name="q",value=np.zeros(3*natoms, float)))
|
||||
dset(self,"p",depend_array(name="p",value=np.zeros(3*natoms, float)))
|
||||
dset(self,"m",depend_array(name="m",value=np.zeros(natoms, float)))
|
||||
dset(self,"names",
|
||||
depend_array(name="names",value=np.zeros(natoms, np.dtype('|S6'))))
|
||||
else:
|
||||
dset(self,"q",_prebind[0])
|
||||
dset(self,"p",_prebind[1])
|
||||
dset(self,"m",_prebind[2])
|
||||
dset(self,"names",_prebind[3])
|
||||
|
||||
self.px = self.p[0:3*natoms:3]
|
||||
self.py = self.p[1:3*natoms:3]
|
||||
self.pz = self.p[2:3*natoms:3]
|
||||
self.qx = self.q[0:3*natoms:3]
|
||||
self.qy = self.q[1:3*natoms:3]
|
||||
self.qz = self.q[2:3*natoms:3]
|
||||
|
||||
dset(self,"m3",
|
||||
depend_array(name="m3",value=np.zeros(3*natoms, float),func=self.mtom3,
|
||||
dependencies=[dget(self,"m")]))
|
||||
|
||||
dset(self,"M",
|
||||
depend_value(name="M",func=self.get_msum,
|
||||
dependencies=[dget(self,"m")]) )
|
||||
dset(self,"kin",
|
||||
depend_value(name="kin",func=self.get_kin,
|
||||
dependencies=[dget(self,"p"),dget(self,"m3")]) )
|
||||
dset(self,"kstress",
|
||||
depend_value(name="kstress",func=self.get_kstress,
|
||||
dependencies=[dget(self,"px"),dget(self,"py"),dget(self,"pz"),dget(self,"m")]) )
|
||||
|
||||
def copy(self):
|
||||
"""Creates a new Atoms object.
|
||||
|
||||
Returns:
|
||||
An Atoms object with the same q, p, m and names arrays as the original.
|
||||
"""
|
||||
|
||||
newat = Atoms(self.natoms)
|
||||
newat.q[:] = self.q
|
||||
newat.p[:] = self.p
|
||||
newat.m[:] = self.m
|
||||
newat.names[:] = self.names
|
||||
return newat
|
||||
|
||||
def __len__(self):
|
||||
"""Length function.
|
||||
|
||||
This is called whenever the standard function len(atoms) is used.
|
||||
|
||||
Returns:
|
||||
The number of atoms.
|
||||
"""
|
||||
|
||||
return self.natoms
|
||||
|
||||
def __getitem__(self,index):
|
||||
"""Overwrites standard getting function.
|
||||
|
||||
This is called whenever the standard function atoms[index] is used.
|
||||
Returns an Atom object with the appropriate position and momenta arrays.
|
||||
Note that they are dynamically generated each time an Atom needs to be
|
||||
accessed, as this reduces the number of depend objects that need to be
|
||||
held at any one time.
|
||||
|
||||
Args:
|
||||
index: The index of the atom to be accessed.
|
||||
|
||||
Returns:
|
||||
The atom given by the index.
|
||||
"""
|
||||
|
||||
return Atom(self,index)
|
||||
|
||||
def __setitem__(self,index,value):
|
||||
"""Overwrites standard setting function.
|
||||
|
||||
This is called whenever the standard function atoms[index]=value is used.
|
||||
Changes the position and momenta of the appropriate slice of the global
|
||||
position and momentum arrays to those given by value.
|
||||
Note that they are dynamically generated each time an Atom needs to be
|
||||
accessed, as this reduces the number of depend objects that need to be
|
||||
held at any one time.
|
||||
|
||||
Args:
|
||||
index: The atom to be changed.
|
||||
value: The Atom object that holds the new values.
|
||||
"""
|
||||
|
||||
pat = Atom(self,index)
|
||||
pat.p = value.p
|
||||
pat.q = value.q
|
||||
pat.m = value.m
|
||||
pat.name = value.name
|
||||
|
||||
def get_msum(self):
|
||||
"""Calculates the total mass."""
|
||||
|
||||
return self.m.sum()
|
||||
|
||||
def mtom3(self):
|
||||
"""Returns a 3*n mass array.
|
||||
|
||||
Returns:
|
||||
An array of 3*n elements where each element of m has been copied
|
||||
three times. Used when each degree of freedom needs to be divided
|
||||
by the mass.
|
||||
"""
|
||||
|
||||
m3 = np.zeros(3*self.natoms,float)
|
||||
m3[0:3*self.natoms:3] = self.m
|
||||
m3[1:3*self.natoms:3] = m3[0:3*self.natoms:3]
|
||||
m3[2:3*self.natoms:3] = m3[0:3*self.natoms:3]
|
||||
return m3
|
||||
|
||||
def get_kin(self):
|
||||
"""Calculates the total kinetic energy of the system."""
|
||||
|
||||
p = depstrip(self.p)
|
||||
return 0.5*np.dot(p,p/depstrip(self.m3))
|
||||
|
||||
def get_kstress(self):
|
||||
"""Calculates the total contribution of the atoms to the kinetic stress
|
||||
tensor -- not volume-scaled
|
||||
"""
|
||||
|
||||
ks = np.zeros((3,3),float)
|
||||
ks[0,0] = np.dot(self.px,self.px/self.m)
|
||||
ks[1,1] = np.dot(self.py,self.py/self.m)
|
||||
ks[2,2] = np.dot(self.pz,self.pz/self.m)
|
||||
ks[0,1] = np.dot(self.px,self.py/self.m)
|
||||
ks[0,2] = np.dot(self.px,self.pz/self.m)
|
||||
ks[1,2] = np.dot(self.py,self.pz/self.m)
|
||||
return ks
|
||||
@ -1,450 +0,0 @@
|
||||
"""Contains the classes that deal with constant pressure dynamics.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Contains the algorithms which propagate the position and momenta steps in the
|
||||
constant pressure ensemble. Holds the properties directly related to
|
||||
these ensembles, such as the internal and external pressure and stress.
|
||||
|
||||
Classes:
|
||||
Barostat: Base barostat class with the generic methods and attributes.
|
||||
BaroBZP: Generates dynamics with a stochastic barostat -- see
|
||||
Ceriotti, More, Manolopoulos, Comp. Phys. Comm. 2013 for
|
||||
implementation details.
|
||||
"""
|
||||
|
||||
# NB: this file also contains a 'BaroMHT' class, that follows more closely the
|
||||
# Martyna, Hughes, Tuckerman implementation of a PIMD barostat. However it is so
|
||||
# close to the BZP implementation that we disabled it for the sake of simplicity
|
||||
# BaroMHT: Generates dynamics according to the method of G. Martyna, A.
|
||||
# Hughes and M. Tuckerman, J. Chem. Phys., 110, 3275.
|
||||
|
||||
__all__ = ['Barostat', 'BaroBZP']
|
||||
|
||||
import numpy as np
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils.units import *
|
||||
from ipi.utils.mathtools import eigensystem_ut3x3, invert_ut3x3, exp_ut3x3, det_ut3x3
|
||||
from ipi.inputs.thermostats import InputThermo
|
||||
from ipi.engine.thermostats import Thermostat
|
||||
|
||||
class Barostat(dobject):
|
||||
"""Base barostat class.
|
||||
|
||||
Gives the standard methods and attributes needed in all the barostat classes.
|
||||
|
||||
Attributes:
|
||||
beads: A beads object giving the atoms positions
|
||||
cell: A cell object giving the system box.
|
||||
forces: A forces object giving the virial and the forces acting on
|
||||
each bead.
|
||||
nm: An object to do the normal mode transformation.
|
||||
thermostat: A thermostat coupled to the barostat degrees of freedom.
|
||||
mdof: The number of atomic degrees of freedom
|
||||
|
||||
Depend objects:
|
||||
dt: The time step used in the algorithms. Depends on the simulation dt.
|
||||
temp: The (classical) simulation temperature. Higher than the physical
|
||||
temperature by a factor of the number of beads.
|
||||
tau: The timescale associated with the piston
|
||||
pext: The external pressure
|
||||
ebaro: The conserved quantity associated with the barostat.
|
||||
pot: The potential energy associated with the barostat.
|
||||
kstress: The system kinetic stress tensor.
|
||||
stress: The system stress tensor.
|
||||
press: The system pressure.
|
||||
"""
|
||||
|
||||
def __init__(self, dt=None, temp=None, pext=None, tau=None, ebaro=None, thermostat=None):
|
||||
"""Initializes base barostat class.
|
||||
|
||||
Note that the external stress and the external pressure are synchronized.
|
||||
This makes most sense going from the stress to the pressure, but if you
|
||||
must go in the other direction the stress is assumed to be isotropic.
|
||||
|
||||
Args:
|
||||
dt: Optional float giving the time step for the algorithms. Defaults
|
||||
to the simulation dt.
|
||||
temp: Optional float giving the temperature for the thermostat.
|
||||
Defaults to the simulation temp.
|
||||
pext: Optional float giving the external pressure.
|
||||
tau: Optional float giving the time scale associated with the barostat.
|
||||
ebaro: Optional float giving the conserved quantity already stored
|
||||
in the barostat initially. Used on restart.
|
||||
thermostat: The thermostat connected to the barostat degree of freedom.
|
||||
"""
|
||||
|
||||
dset(self,"dt",depend_value(name='dt'))
|
||||
if not dt is None:
|
||||
self.dt = dt
|
||||
else: self.dt = 1.0
|
||||
|
||||
dset(self, "temp", depend_value(name="temp"))
|
||||
if not temp is None:
|
||||
self.temp = temp
|
||||
else: self.temp = 1.0
|
||||
|
||||
dset(self,"tau",depend_value(name='tau'))
|
||||
if not tau is None:
|
||||
self.tau = tau
|
||||
else: self.tau = 1.0
|
||||
|
||||
dset(self,"pext",depend_value(name='pext'))
|
||||
if not pext is None:
|
||||
self.pext = pext
|
||||
else: self.pext = 0.0
|
||||
|
||||
dset(self,"ebaro",depend_value(name='ebaro'))
|
||||
if not ebaro is None:
|
||||
self.ebaro = ebaro
|
||||
else: self.ebaro = 0.0
|
||||
|
||||
if thermostat is None:
|
||||
thermostat = Thermostat()
|
||||
self.thermostat = thermostat
|
||||
|
||||
# pipes timestep and temperature to the thermostat
|
||||
deppipe(self,"dt", self.thermostat, "dt")
|
||||
deppipe(self, "temp", self.thermostat,"temp")
|
||||
|
||||
|
||||
def bind(self, beads, nm, cell, forces, prng=None, fixdof=None):
|
||||
"""Binds beads, cell and forces to the barostat.
|
||||
|
||||
This takes a beads object, a cell object and a forcefield object and
|
||||
makes them members of the barostat. It also then creates the objects that
|
||||
will hold the data needed in the barostat algorithms and the dependency
|
||||
network.
|
||||
|
||||
Args:
|
||||
beads: The beads object from which the bead positions are taken.
|
||||
nm: The normal modes propagator object
|
||||
cell: The cell object from which the system box is taken.
|
||||
forces: The forcefield object from which the force and virial are
|
||||
taken.
|
||||
prng: The parent PRNG to bind the thermostat to
|
||||
fixdof: The number of blocked degrees of freedom.
|
||||
"""
|
||||
|
||||
self.beads = beads
|
||||
self.cell = cell
|
||||
self.forces = forces
|
||||
self.nm = nm
|
||||
|
||||
dset(self,"pot",
|
||||
depend_value(name='pot', func=self.get_pot,
|
||||
dependencies=[ dget(cell,"V"), dget(self,"pext") ]))
|
||||
dset(self,"kstress",
|
||||
depend_value(name='kstress', func=self.get_kstress,
|
||||
dependencies=[ dget(beads,"q"), dget(beads,"qc"), dget(beads,"pc"), dget(forces,"f") ]))
|
||||
dset(self,"stress",
|
||||
depend_value(name='stress', func=self.get_stress,
|
||||
dependencies=[ dget(self,"kstress"), dget(cell,"V"), dget(forces,"vir") ]))
|
||||
dset(self,"press",
|
||||
depend_value(name='press', func=self.get_press,
|
||||
dependencies=[ dget(self,"stress") ]))
|
||||
|
||||
if fixdof is None:
|
||||
self.mdof = float(self.beads.natoms)*3.0
|
||||
else:
|
||||
self.mdof = float(self.beads.natoms)*3.0 - float(fixdof)
|
||||
|
||||
def get_pot(self):
|
||||
"""Calculates the elastic strain energy of the cell."""
|
||||
|
||||
# NOTE: since there are nbeads replicas of the unit cell, the enthalpy contains a nbeads factor
|
||||
return self.cell.V*self.pext*self.beads.nbeads
|
||||
|
||||
def get_kstress(self):
|
||||
"""Calculates the quantum centroid virial kinetic stress tensor
|
||||
estimator.
|
||||
"""
|
||||
|
||||
kst = np.zeros((3,3),float)
|
||||
q = depstrip(self.beads.q)
|
||||
qc = depstrip(self.beads.qc)
|
||||
pc = depstrip(self.beads.pc)
|
||||
m = depstrip(self.beads.m)
|
||||
na3 = 3*self.beads.natoms
|
||||
fall = depstrip(self.forces.f)
|
||||
|
||||
for b in range(self.beads.nbeads):
|
||||
for i in range(3):
|
||||
for j in range(i,3):
|
||||
kst[i,j] -= np.dot(q[b,i:na3:3] - qc[i:na3:3],
|
||||
fall[b,j:na3:3])
|
||||
|
||||
# NOTE: In order to have a well-defined conserved quantity, the Nf kT term in the
|
||||
# diagonal stress estimator must be taken from the centroid kinetic energy.
|
||||
for i in range(3):
|
||||
kst[i,i] += np.dot(pc[i:na3:3],pc[i:na3:3]/m) *self.beads.nbeads
|
||||
|
||||
return kst
|
||||
|
||||
def get_stress(self):
|
||||
"""Calculates the internal stress tensor."""
|
||||
|
||||
return (self.kstress + self.forces.vir)/self.cell.V
|
||||
|
||||
def get_press(self):
|
||||
"""Calculates the internal pressure."""
|
||||
|
||||
return np.trace(self.stress)/3.0
|
||||
|
||||
def pstep(self):
|
||||
"""Dummy momenta propagator step."""
|
||||
|
||||
pass
|
||||
|
||||
def qcstep(self):
|
||||
"""Dummy centroid position propagator step."""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class BaroBZP(Barostat):
|
||||
"""Bussi-Zykova-Parrinello barostat class.
|
||||
|
||||
Just extends the standard class adding finite-dt propagators for the barostat
|
||||
velocities, positions, piston.
|
||||
|
||||
Depend objects:
|
||||
p: The momentum associated with the volume degree of freedom.
|
||||
m: The mass associated with the volume degree of freedom.
|
||||
"""
|
||||
|
||||
def __init__(self, dt=None, temp=None, pext=None, tau=None, ebaro=None, thermostat=None, p=None):
|
||||
"""Initializes BZP barostat.
|
||||
|
||||
Args:
|
||||
dt: Optional float giving the time step for the algorithms. Defaults
|
||||
to the simulation dt.
|
||||
temp: Optional float giving the temperature for the thermostat.
|
||||
Defaults to the simulation temp.
|
||||
pext: Optional float giving the external pressure.
|
||||
tau: Optional float giving the time scale associated with the barostat.
|
||||
ebaro: Optional float giving the conserved quantity already stored
|
||||
in the barostat initially. Used on restart.
|
||||
thermostat: The thermostat connected to the barostat degree of freedom.
|
||||
p: Optional initial volume conjugate momentum. Defaults to 0.
|
||||
"""
|
||||
|
||||
|
||||
super(BaroBZP, self).__init__(dt, temp, pext, tau, ebaro, thermostat)
|
||||
|
||||
dset(self,"p", depend_array(name='p', value=np.atleast_1d(0.0)))
|
||||
|
||||
if not p is None:
|
||||
self.p = np.asarray([p])
|
||||
else:
|
||||
self.p = 0.0
|
||||
|
||||
def bind(self, beads, nm, cell, forces, prng=None, fixdof=None):
|
||||
"""Binds beads, cell and forces to the barostat.
|
||||
|
||||
This takes a beads object, a cell object and a forcefield object and
|
||||
makes them members of the barostat. It also then creates the objects that
|
||||
will hold the data needed in the barostat algorithms and the dependency
|
||||
network.
|
||||
|
||||
Args:
|
||||
beads: The beads object from which the bead positions are taken.
|
||||
nm: The normal modes propagator object
|
||||
cell: The cell object from which the system box is taken.
|
||||
forces: The forcefield object from which the force and virial are
|
||||
taken.
|
||||
prng: The parent PRNG to bind the thermostat to
|
||||
fixdof: The number of blocked degrees of freedom.
|
||||
"""
|
||||
|
||||
super(BaroBZP, self).bind(beads, nm, cell, forces, prng, fixdof)
|
||||
|
||||
# obtain the thermostat mass from the given time constant
|
||||
# note that the barostat temperature is nbeads times the physical T
|
||||
dset(self,"m", depend_array(name='m', value=np.atleast_1d(0.0),
|
||||
func=(lambda:np.asarray([self.tau**2*3*self.beads.natoms*Constants.kb*self.temp])),
|
||||
dependencies=[ dget(self,"tau"), dget(self,"temp") ] ))
|
||||
|
||||
# binds the thermostat to the piston degrees of freedom
|
||||
self.thermostat.bind(pm=[ self.p, self.m ], prng=prng)
|
||||
|
||||
dset(self,"kin",depend_value(name='kin',
|
||||
func=(lambda:0.5*self.p[0]**2/self.m[0]),
|
||||
dependencies= [dget(self,"p"), dget(self,"m")] ) )
|
||||
|
||||
# the barostat energy must be computed from bits & pieces (overwrite the default)
|
||||
dset(self, "ebaro", depend_value(name='ebaro', func=self.get_ebaro,
|
||||
dependencies=[ dget(self, "kin"), dget(self, "pot"),
|
||||
dget(self.cell, "V"), dget(self, "temp"),
|
||||
dget(self.thermostat,"ethermo")] ))
|
||||
|
||||
def get_ebaro(self):
|
||||
"""Calculates the barostat conserved quantity."""
|
||||
|
||||
return self.thermostat.ethermo + self.kin + self.pot - np.log(self.cell.V)*Constants.kb*self.temp
|
||||
|
||||
|
||||
def pstep(self):
|
||||
"""Propagates the momenta for half a time step."""
|
||||
|
||||
dthalf = self.dt*0.5
|
||||
dthalf2 = dthalf**2
|
||||
dthalf3 = dthalf**3/3.0
|
||||
|
||||
# This differs from the BZP thermostat in that it uses just one kT in the propagator.
|
||||
# This leads to an ensemble equaivalent to Martyna-Hughes-Tuckermann for both fixed and moving COM
|
||||
# Anyway, it is a small correction so whatever.
|
||||
self.p += dthalf*3.0*( self.cell.V* ( self.press - self.beads.nbeads*self.pext ) +
|
||||
Constants.kb*self.temp )
|
||||
|
||||
fc = np.sum(depstrip(self.forces.f),0)/self.beads.nbeads
|
||||
m = depstrip(self.beads.m3)[0]
|
||||
pc = depstrip(self.beads.pc)
|
||||
|
||||
# I am not 100% sure, but these higher-order terms come from integrating the pressure virial term,
|
||||
# so they should need to be multiplied by nbeads to be consistent with the equations of motion in the PI context
|
||||
# again, these are tiny tiny terms so whatever.
|
||||
self.p += (dthalf2*np.dot(pc,fc/m) + dthalf3*np.dot(fc,fc/m)) * self.beads.nbeads
|
||||
|
||||
self.beads.p += depstrip(self.forces.f)*dthalf
|
||||
|
||||
def qcstep(self):
|
||||
"""Propagates the centroid position and momentum and the volume."""
|
||||
|
||||
v = self.p[0]/self.m[0]
|
||||
expq, expp = (np.exp(v*self.dt), np.exp(-v*self.dt))
|
||||
|
||||
m = depstrip(self.beads.m3)[0]
|
||||
|
||||
self.nm.qnm[0,:] *= expq
|
||||
self.nm.qnm[0,:] += ((expq-expp)/(2.0*v))* (depstrip(self.nm.pnm)[0,:]/m)
|
||||
self.nm.pnm[0,:] *= expp
|
||||
|
||||
self.cell.h *= expq
|
||||
|
||||
|
||||
class BaroMHT(Barostat):
|
||||
"""Martyna-Hughes-Tuckerman barostat class.
|
||||
|
||||
Just extends the standard class adding finite-dt propagators for the barostat
|
||||
velocities, positions, piston.
|
||||
|
||||
Depend objects:
|
||||
p: The momentum associated with the volume degree of freedom.
|
||||
m: The mass associated with the volume degree of freedom.
|
||||
"""
|
||||
|
||||
def __init__(self, dt=None, temp=None, pext=None, tau=None, ebaro=None, thermostat=None, p=None):
|
||||
"""Initializes MHT barostat.
|
||||
|
||||
Args:
|
||||
dt: Optional float giving the time step for the algorithms. Defaults
|
||||
to the simulation dt.
|
||||
temp: Optional float giving the temperature for the thermostat.
|
||||
Defaults to the simulation temp.
|
||||
pext: Optional float giving the external pressure.
|
||||
tau: Optional float giving the time scale associated with the barostat.
|
||||
ebaro: Optional float giving the conserved quantity already stored
|
||||
in the barostat initially. Used on restart.
|
||||
thermostat: The thermostat connected to the barostat degree of freedom.
|
||||
p: Optional initial volume conjugate momentum. Defaults to 0.
|
||||
"""
|
||||
|
||||
super(BaroMHT, self).__init__(dt, temp, pext, tau, ebaro, thermostat)
|
||||
|
||||
dset(self,"p", depend_array(name='p', value=np.atleast_1d(0.0)))
|
||||
|
||||
if not p is None:
|
||||
self.p = np.asarray([p])
|
||||
else:
|
||||
self.p = 0.0
|
||||
|
||||
def bind(self, beads, nm, cell, forces, prng=None, fixdof=None):
|
||||
"""Binds beads, cell and forces to the barostat.
|
||||
|
||||
This takes a beads object, a cell object and a forcefield object and
|
||||
makes them members of the barostat. It also then creates the objects that
|
||||
will hold the data needed in the barostat algorithms and the dependency
|
||||
network.
|
||||
|
||||
Args:
|
||||
beads: The beads object from which the bead positions are taken.
|
||||
nm: The normal modes propagator object
|
||||
cell: The cell object from which the system box is taken.
|
||||
forces: The forcefield object from which the force and virial are
|
||||
taken.
|
||||
prng: The parent PRNG to bind the thermostat to
|
||||
fixdof: The number of blocked degrees of freedom.
|
||||
"""
|
||||
|
||||
super(BaroMHT, self).bind(beads, nm, cell, forces, prng, fixdof)
|
||||
|
||||
# obtain the thermostat mass from the given time constant
|
||||
# note that the barostat temperature is nbeads times the physical T
|
||||
dset(self,"m", depend_array(name='m', value=np.atleast_1d(0.0),
|
||||
func=(lambda:np.asarray([self.tau**2*3*self.beads.natoms*Constants.kb*self.temp])),
|
||||
dependencies=[ dget(self,"tau"), dget(self,"temp") ] ))
|
||||
|
||||
# binds the thermostat to the piston degrees of freedom
|
||||
self.thermostat.bind(pm=[ self.p, self.m ], prng=prng)
|
||||
|
||||
dset(self,"kin",depend_value(name='kin',
|
||||
func=(lambda:0.5*self.p[0]**2/self.m[0]),
|
||||
dependencies=[dget(self,"p"), dget(self,"m")] ) )
|
||||
|
||||
# the barostat energy must be computed from bits & pieces (overwrite the default)
|
||||
dset(self, "ebaro", depend_value(name='ebaro', func=self.get_ebaro,
|
||||
dependencies=[ dget(self, "kin"), dget(self, "pot"),
|
||||
dget(self.cell, "V"), dget(self, "temp"),
|
||||
dget(self.thermostat,"ethermo")]))
|
||||
|
||||
def get_ebaro(self):
|
||||
"""Calculates the barostat conserved quantity."""
|
||||
|
||||
return self.thermostat.ethermo + self.kin + self.pot
|
||||
|
||||
def pstep(self):
|
||||
"""Propagates the momenta for half a time step."""
|
||||
|
||||
dthalf = self.dt*0.5
|
||||
dthalf2 = dthalf**2
|
||||
dthalf3 = dthalf**3/3.0
|
||||
|
||||
fc = np.sum(depstrip(self.forces.f),0)/float(self.beads.nbeads)
|
||||
m = depstrip(self.beads.m3)[0]
|
||||
pc = depstrip(self.beads.pc)
|
||||
|
||||
self.p += dthalf*3.0*( self.cell.V* ( self.press - self.beads.nbeads*self.pext ) +
|
||||
float(self.beads.nbeads)/self.mdof*np.dot(pc,pc/m) )
|
||||
|
||||
self.beads.p += depstrip(self.forces.f)*dthalf
|
||||
|
||||
def qcstep(self):
|
||||
"""Propagates the centroid position and momentum and the volume."""
|
||||
|
||||
v = self.p[0]/self.m[0]
|
||||
adof = (1 + 3.0/self.mdof)
|
||||
expq, expp = (np.exp(v*self.dt), np.exp( -v*self.dt * adof ) )
|
||||
|
||||
m = depstrip(self.beads.m3)[0]
|
||||
|
||||
self.nm.qnm[0,:] *= expq
|
||||
self.nm.qnm[0,:] += ((expq-expp)/(v*(1+adof)) *
|
||||
(depstrip(self.nm.pnm)[0,:])/m)
|
||||
self.nm.pnm[0,:] *= expp
|
||||
|
||||
self.cell.h *= expq
|
||||
@ -1,323 +0,0 @@
|
||||
"""Contains the classes which deal with all the beads.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Used for holding information about the beads, including their positions, masses
|
||||
momenta and kinetic energy. Has different objects for the position and normal
|
||||
mode representations, and has a special centroid atoms object for when the
|
||||
centroid coordinate is required.
|
||||
|
||||
Classes:
|
||||
Beads: Class with methods dealing with all the beads.
|
||||
"""
|
||||
|
||||
__all__ = ['Beads']
|
||||
|
||||
import numpy as np
|
||||
from ipi.utils.depend import *
|
||||
from ipi.engine.atoms import Atoms
|
||||
from ipi.utils import units
|
||||
|
||||
class Beads(dobject):
|
||||
"""Storage for the beads positions and velocities.
|
||||
|
||||
Everything is stored as (nbeads,3*natoms) sized contiguous arrays,
|
||||
and a convenience-access to each replica of the system is provided through a
|
||||
list of Atoms objects. Contains arrays of both the normal mode representation
|
||||
and the position representation, and various sized arrays for the atom
|
||||
labels and masses. Also contains the potential and force between
|
||||
neighbouring replicas.
|
||||
|
||||
Attributes:
|
||||
natoms: The number of atoms.
|
||||
nbeads: The number of beads.
|
||||
_blist: A list of Atoms objects for each replica of the system. Each
|
||||
replica is assumed to have the same mass and atom label.
|
||||
centroid: An atoms object giving the centroid coordinate of the beads.
|
||||
|
||||
Depend objects:
|
||||
names: An array giving the atom names.
|
||||
m: An array giving the atom masses.
|
||||
m3: An array giving the mass associated with each degree of freedom.
|
||||
sm3: An array giving the square root of m3.
|
||||
q: An array giving all the bead positions.
|
||||
p: An array giving all the bead momenta.
|
||||
qc: An array giving the centroid positions. Depends on qnm.
|
||||
pc: An array giving the centroid momenta. Depends on pnm.
|
||||
vpath: The spring potential between the beads, divided by omegan**2.
|
||||
Depends on q.
|
||||
fpath: The spring force between the beads, divided by omegan**2.
|
||||
Depends on q.
|
||||
kins: A list of the kinetic energy of each replica.
|
||||
kin: The total kinetic energy of the system. Note that this is not the
|
||||
same as the estimate of the kinetic energy of the system, which is
|
||||
contained in the properties module.
|
||||
kstress: The total kinetic stress tensor for the system.
|
||||
rg: An array giving the radius of gyration of each atom.
|
||||
"""
|
||||
|
||||
def __init__(self, natoms, nbeads):
|
||||
"""Initializes Beads.
|
||||
|
||||
Args:
|
||||
natoms: Number of atoms.
|
||||
nbeads: Number of beads.
|
||||
"""
|
||||
|
||||
self.resize(natoms, nbeads)
|
||||
|
||||
def resize(self, natoms, nbeads):
|
||||
"""Creates all the data arrays needed in the simulation.
|
||||
|
||||
Effectively initializes the whole Beads object, according to the
|
||||
specified number of atoms and beads. Is also used, as the name suggests,
|
||||
to resize the data to a new number of beads when this is necessary, for
|
||||
example in initialization from a simulation with a different number of
|
||||
beads.
|
||||
|
||||
Also creates, or recreates, the dependency network, as this requires
|
||||
the data arrays to be created for it to work.
|
||||
|
||||
Args:
|
||||
natoms: The number of atoms.
|
||||
nbeads: The number of beads.
|
||||
"""
|
||||
|
||||
self.natoms = natoms
|
||||
self.nbeads = nbeads
|
||||
|
||||
dset(self,"names",
|
||||
depend_array(name="names",value=np.zeros(natoms, np.dtype('|S6'))) )
|
||||
|
||||
# atom masses, and mass-related arrays
|
||||
dset(self,"m",depend_array(name="m",value=np.zeros(natoms, float)) ) # this is the prototype mass array (just one independent of bead n)
|
||||
dset(self,"m3",
|
||||
depend_array(name="m3",value=np.zeros((nbeads,3*natoms), float), # this is m conveniently replicated to be (nb,3*nat)
|
||||
func=self.mtom3, dependencies=[dget(self,"m")]))
|
||||
dset(self,"sm3",
|
||||
depend_array(name="sm3",value=np.zeros((nbeads,3*natoms), float), # this is just the square root of m3
|
||||
func=self.m3tosm3, dependencies=[dget(self,"m3")]))
|
||||
|
||||
# positions and momenta. bead representation, base storage used everywhere
|
||||
dset(self,"q",
|
||||
depend_array(name="q",value=np.zeros((nbeads,3*natoms), float)) )
|
||||
dset(self,"p",
|
||||
depend_array(name="p",value=np.zeros((nbeads,3*natoms), float)) )
|
||||
|
||||
# position and momentum of the centroid
|
||||
dset(self,"qc",
|
||||
depend_array(name="qc",value=np.zeros(3*natoms, float),
|
||||
func=self.get_qc, dependencies=[dget(self,"q")] ) )
|
||||
dset(self,"pc",
|
||||
depend_array(name="pc",value=np.zeros(3*natoms, float),
|
||||
func=self.get_pc, dependencies=[dget(self,"p")] ) )
|
||||
|
||||
# create proxies to access the centroid and the individual beads as Atoms objects
|
||||
self.centroid = Atoms(natoms, _prebind=(self.qc, self.pc, self.m, self.names))
|
||||
self._blist = [Atoms(natoms, _prebind=( self.q[i,:], self.p[i,:], self.m, self.names )) for i in range(nbeads) ]
|
||||
|
||||
# path springs potential and force
|
||||
dset(self,"vpath",
|
||||
depend_value(name="vpath", func=self.get_vpath,
|
||||
dependencies=[dget(self,"q")]))
|
||||
dset(self,"fpath",
|
||||
depend_array(name="fpath", value=np.zeros((nbeads,3*natoms), float),
|
||||
func=self.get_fpath, dependencies=[dget(self,"q")]))
|
||||
|
||||
# kinetic energies of thhe beads, and total (classical) kinetic stress tensor
|
||||
dset(self,"kins",
|
||||
depend_array(name="kins",value=np.zeros(nbeads, float),
|
||||
func=self.kin_gather,
|
||||
dependencies=[dget(b,"kin") for b in self._blist]))
|
||||
dset(self,"kin",
|
||||
depend_value(name="kin", func=self.get_kin,
|
||||
dependencies=[dget(self,"kins")]))
|
||||
dset(self,"kstress",
|
||||
depend_array(name="kstress",value=np.zeros((3,3), float),
|
||||
func=self.get_kstress,
|
||||
dependencies=[dget(b,"kstress") for b in self._blist]))
|
||||
|
||||
def copy(self):
|
||||
"""Creates a new beads object from the original.
|
||||
|
||||
Returns:
|
||||
A Beads object with the same q, p, m and names arrays as the original.
|
||||
"""
|
||||
|
||||
newbd = Beads(self.natoms, self.nbeads)
|
||||
newbd.q[:] = self.q
|
||||
newbd.p[:] = self.p
|
||||
newbd.m[:] = self.m
|
||||
newbd.names[:] = self.names
|
||||
return newbd
|
||||
|
||||
|
||||
def m3tosm3(self):
|
||||
"""Takes the mass array and returns the square rooted mass array."""
|
||||
|
||||
return np.sqrt(depstrip(self.m3))
|
||||
|
||||
def mtom3(self):
|
||||
"""Takes the mass array for each bead and returns one with an element
|
||||
for each degree of freedom.
|
||||
|
||||
Returns:
|
||||
An array of size (nbeads,3*natoms), with each element corresponding
|
||||
to the mass associated with the appropriate degree of freedom in q.
|
||||
"""
|
||||
|
||||
m3 = np.zeros((self.nbeads,3*self.natoms),float)
|
||||
m3[:,0:3*self.natoms:3] = self.m
|
||||
m3[:,1:3*self.natoms:3] = m3[:,0:3*self.natoms:3]
|
||||
m3[:,2:3*self.natoms:3] = m3[:,0:3*self.natoms:3]
|
||||
return m3
|
||||
|
||||
def get_qc(self):
|
||||
"""Gets the centroid coordinates."""
|
||||
|
||||
return np.dot(np.ones(self.nbeads,float),depstrip(self.q))/float(self.nbeads)
|
||||
|
||||
def get_pc(self):
|
||||
"""Gets the centroid momenta."""
|
||||
|
||||
return np.dot(np.ones(self.nbeads,float),depstrip(self.p))/float(self.nbeads)
|
||||
|
||||
def kin_gather(self):
|
||||
"""Gets the kinetic energy for all the replicas.
|
||||
|
||||
Returns:
|
||||
A list of the kinetic energy for each system.
|
||||
"""
|
||||
|
||||
return np.array([b.kin for b in self._blist])
|
||||
|
||||
def get_kin(self):
|
||||
"""Gets the total kinetic energy of all the replicas.
|
||||
|
||||
Note that this does not correspond to the total kinetic energy estimate
|
||||
for the system.
|
||||
|
||||
Returns:
|
||||
The sum of the kinetic energy of each replica.
|
||||
"""
|
||||
|
||||
return self.kins.sum()
|
||||
|
||||
def get_kstress(self):
|
||||
"""Calculates the total kinetic stress tensor of all the replicas.
|
||||
|
||||
Note that this does not correspond to the quantum kinetic stress tensor
|
||||
estimate for the system.
|
||||
|
||||
Returns:
|
||||
The sum of the kinetic stress tensor of each replica.
|
||||
"""
|
||||
|
||||
ks = np.zeros((3,3),float)
|
||||
for b in range(self.nbeads):
|
||||
ks += self[b].kstress
|
||||
return ks
|
||||
|
||||
def get_vpath(self):
|
||||
"""Calculates the spring potential between the replicas.
|
||||
|
||||
Note that this is actually the harmonic potential without being
|
||||
multiplied by the factor omegan**2, which is only available in the
|
||||
ensemble as the temperature is required to calculate it.
|
||||
"""
|
||||
|
||||
epath = 0.0
|
||||
q = depstrip(self.q)
|
||||
m = depstrip(self.m3)[0]
|
||||
for b in range(self.nbeads):
|
||||
if b > 0:
|
||||
dq = q[b,:] - q[b-1,:]
|
||||
else:
|
||||
dq = q[b,:] - q[self.nbeads-1,:]
|
||||
epath += np.dot(dq, m*dq)
|
||||
return epath*0.5
|
||||
|
||||
def get_fpath(self):
|
||||
"""Calculates the spring force between the replicas.
|
||||
|
||||
Note that this is actually the harmonic force without being
|
||||
multiplied by the factor omegan**2, which is only available in the
|
||||
ensemble as the temperature is required to calculate it.
|
||||
"""
|
||||
|
||||
nbeads = self.nbeads
|
||||
natoms = self.natoms
|
||||
f = np.zeros((nbeads,3*natoms),float)
|
||||
|
||||
q = depstrip(self.q)
|
||||
m = depstrip(self.m3)[0]
|
||||
for b in range(nbeads):
|
||||
if b > 0:
|
||||
dq = q[b,:] - q[b-1,:]
|
||||
else:
|
||||
dq = q[b,:] - q[self.nbeads-1,:]
|
||||
dq *= m
|
||||
f[b] -= dq
|
||||
if b > 0:
|
||||
f[b-1] += dq
|
||||
else:
|
||||
f[nbeads-1] += dq
|
||||
return f
|
||||
|
||||
# A set of functions to access individual beads as Atoms objects
|
||||
def __len__(self):
|
||||
"""Length function.
|
||||
|
||||
This is called whenever the standard function len(beads) is used.
|
||||
|
||||
Returns:
|
||||
The number of beads.
|
||||
"""
|
||||
|
||||
return self.nbeads
|
||||
|
||||
def __getitem__(self,index):
|
||||
"""Overwrites standard getting function.
|
||||
|
||||
This is called whenever the standard function beads[index] is used.
|
||||
Returns an Atoms object with the appropriate position and momenta arrays.
|
||||
|
||||
Args:
|
||||
index: The index of the replica of the system to be accessed.
|
||||
|
||||
Returns:
|
||||
The replica of the system given by the index.
|
||||
"""
|
||||
|
||||
return self._blist[index]
|
||||
|
||||
def __setitem__(self,index,value):
|
||||
"""Overwrites standard setting function.
|
||||
|
||||
This is called whenever the standard function beads[index]=value is used.
|
||||
Changes the position and momenta of the appropriate slice of the global
|
||||
position and momentum arrays to those given by value.
|
||||
|
||||
Args:
|
||||
index: The replica of the system to be changed.
|
||||
value: The Atoms object that holds the new values.
|
||||
"""
|
||||
|
||||
self._blist[index].p[:] = value.p
|
||||
self._blist[index].q[:] = value.q
|
||||
self._blist[index].m[:] = value.m
|
||||
self._blist[index].names[:] = value.names
|
||||
@ -1,140 +0,0 @@
|
||||
"""Contains the classes which deal with the system box.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Used for implementing the minimum image convention.
|
||||
|
||||
Classes:
|
||||
Cell: Base cell class with the generic methods and attributes.
|
||||
"""
|
||||
|
||||
__all__ = ['Cell']
|
||||
|
||||
import numpy as np
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils.mathtools import *
|
||||
from ipi.utils import units
|
||||
|
||||
|
||||
class Cell(dobject):
|
||||
"""Base class to represent the simulation cell in a periodic system.
|
||||
|
||||
This class has the base attributes required for either flexible or
|
||||
isotropic cell dynamics. Uses an upper triangular lattice vector matrix to
|
||||
represent the cell.
|
||||
|
||||
Depend objects:
|
||||
h: An array giving the lattice vector matrix.
|
||||
ih: An array giving the inverse of the lattice vector matrix.
|
||||
V: The volume of the cell.
|
||||
"""
|
||||
|
||||
def __init__(self, h=None):
|
||||
"""Initializes base cell class.
|
||||
|
||||
Args:
|
||||
h: Optional array giving the initial lattice vector matrix. The
|
||||
reference cell matrix is set equal to this. Must be an upper
|
||||
triangular 3*3 matrix. Defaults to a 3*3 zeroes matrix.
|
||||
"""
|
||||
|
||||
if h is None:
|
||||
#h = np.identity(3,float)
|
||||
h = np.zeros((3,3), float)
|
||||
dset(self,"h",depend_array(name = 'h', value = h) )
|
||||
|
||||
dset(self,"ih",
|
||||
depend_array(name = "ih", value = np.zeros((3,3),float),
|
||||
func=self.get_ih, dependencies=[dget(self,"h")]) )
|
||||
dset(self,"V",
|
||||
depend_value(name = 'V', func=self.get_volume,
|
||||
dependencies=[dget(self,"h")]) )
|
||||
|
||||
def get_ih(self):
|
||||
"""Inverts the lattice vector matrix."""
|
||||
|
||||
return invert_ut3x3(self.h)
|
||||
|
||||
def get_volume(self):
|
||||
"""Calculates the volume of the system box."""
|
||||
|
||||
return det_ut3x3(self.h)
|
||||
|
||||
def apply_pbc(self, atom):
|
||||
"""Uses the minimum image convention to return a particle to the
|
||||
unit cell.
|
||||
|
||||
Args:
|
||||
atom: An Atom object.
|
||||
|
||||
Returns:
|
||||
An array giving the position of the image that is inside the
|
||||
system box.
|
||||
"""
|
||||
|
||||
s = np.dot(self.ih,atom.q)
|
||||
|
||||
|
||||
for i in range(3):
|
||||
s[i] = s[i] - round(s[i])
|
||||
|
||||
return np.dot(self.h,s)
|
||||
|
||||
def array_pbc(self, pos):
|
||||
"""Uses the minimum image convention to return a list of particles to the
|
||||
unit cell.
|
||||
|
||||
Args:
|
||||
atom: An Atom object.
|
||||
|
||||
Returns:
|
||||
An array giving the position of the image that is inside the
|
||||
system box.
|
||||
"""
|
||||
|
||||
s = depstrip(pos).copy()
|
||||
s.shape = (len(pos)/3,3)
|
||||
|
||||
s = np.dot(depstrip(self.ih),s.T)
|
||||
s = s - np.round(s)
|
||||
|
||||
s = np.dot(depstrip(self.h),s).T
|
||||
|
||||
pos[:] = s.reshape((len(s)*3))
|
||||
|
||||
def minimum_distance(self, atom1, atom2):
|
||||
"""Takes two atoms and tries to find the smallest vector between two
|
||||
images.
|
||||
|
||||
This is only rigorously accurate in the case of a cubic cell,
|
||||
but gives the correct results as long as the cut-off radius is defined
|
||||
as smaller than the smallest width between parallel faces even for
|
||||
triclinic cells.
|
||||
|
||||
Args:
|
||||
atom1: An Atom object.
|
||||
atom2: An Atom object.
|
||||
|
||||
Returns:
|
||||
An array giving the minimum distance between the positions of atoms
|
||||
atom1 and atom2 in the minimum image convention.
|
||||
"""
|
||||
|
||||
s = np.dot(self.ih,atom1.q-atom2.q)
|
||||
for i in range(3):
|
||||
s[i] -= round(s[i])
|
||||
return np.dot(self.h, s)
|
||||
@ -1,565 +0,0 @@
|
||||
"""Contains the classes that deal with the different dynamics required in
|
||||
different types of ensembles.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Holds the algorithms required for normal mode propagators, and the objects to
|
||||
do the constant temperature and pressure algorithms. Also calculates the
|
||||
appropriate conserved energy quantity for the ensemble of choice.
|
||||
|
||||
Classes:
|
||||
Ensemble: Base ensemble class with generic methods and attributes.
|
||||
NVEEnsemble: Deals with constant energy dynamics.
|
||||
NVTEnsemble: Deals with constant temperature dynamics.
|
||||
NPTEnsemble: Deals with constant pressure dynamics.
|
||||
ReplayEnsemble: Takes a trajectory, and simply sets the atom positions to
|
||||
match it, rather than doing dynamics. In this way new properties can
|
||||
be calculated on an old simulation, without having to rerun it from
|
||||
scratch.
|
||||
"""
|
||||
|
||||
__all__ = ['Ensemble', 'NVEEnsemble', 'NVTEnsemble', 'NPTEnsemble', 'ReplayEnsemble']
|
||||
|
||||
import numpy as np
|
||||
import time
|
||||
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils import units
|
||||
from ipi.utils.softexit import softexit
|
||||
from ipi.utils.io.io_xyz import read_xyz
|
||||
from ipi.utils.io.io_pdb import read_pdb
|
||||
from ipi.utils.io.io_xml import xml_parse_file
|
||||
from ipi.utils.units import Constants, unit_to_internal
|
||||
from ipi.inputs.thermostats import InputThermo
|
||||
from ipi.inputs.barostats import InputBaro
|
||||
from ipi.engine.thermostats import *
|
||||
from ipi.engine.barostats import *
|
||||
|
||||
|
||||
class Ensemble(dobject):
|
||||
"""Base ensemble class.
|
||||
|
||||
Gives the standard methods and attributes needed in all the
|
||||
ensemble classes.
|
||||
|
||||
Attributes:
|
||||
beads: A beads object giving the atoms positions.
|
||||
cell: A cell object giving the system box.
|
||||
forces: A forces object giving the virial and the forces acting on
|
||||
each bead.
|
||||
prng: A random number generator object.
|
||||
nm: An object which does the normal modes transformation.
|
||||
fixcom: A boolean which decides whether the centre of mass
|
||||
motion will be constrained or not.
|
||||
|
||||
Depend objects:
|
||||
econs: The conserved energy quantity appropriate to the given
|
||||
ensemble. Depends on the various energy terms which make it up,
|
||||
which are different depending on the ensemble.
|
||||
temp: The system temperature.
|
||||
dt: The timestep for the algorithms.
|
||||
ntemp: The simulation temperature. Will be nbeads times higher than
|
||||
the system temperature as PIMD calculations are done at this
|
||||
effective classical temperature.
|
||||
"""
|
||||
|
||||
def __init__(self, dt, temp, fixcom=False):
|
||||
"""Initializes Ensemble.
|
||||
|
||||
Args:
|
||||
dt: The timestep of the simulation algorithms.
|
||||
temp: The temperature.
|
||||
fixcom: An optional boolean which decides whether the centre of mass
|
||||
motion will be constrained or not. Defaults to False.
|
||||
"""
|
||||
|
||||
dset(self, "econs", depend_value(name='econs', func=self.get_econs))
|
||||
dset(self, "temp", depend_value(name='temp', value=temp))
|
||||
dset(self, "dt", depend_value(name='dt', value=dt))
|
||||
self.fixcom = fixcom
|
||||
|
||||
|
||||
def bind(self, beads, nm, cell, bforce, prng):
|
||||
"""Binds beads, cell, bforce and prng to the ensemble.
|
||||
|
||||
This takes a beads object, a cell object, a forcefield object and a
|
||||
random number generator object and makes them members of the ensemble.
|
||||
It also then creates the objects that will hold the data needed in the
|
||||
ensemble algorithms and the dependency network. Note that the conserved
|
||||
quantity is defined in the init, but as each ensemble has a different
|
||||
conserved quantity the dependencies are defined in bind.
|
||||
|
||||
Args:
|
||||
beads: The beads object from which the bead positions are taken.
|
||||
nm: A normal modes object used to do the normal modes transformation.
|
||||
cell: The cell object from which the system box is taken.
|
||||
bforce: The forcefield object from which the force and virial are
|
||||
taken.
|
||||
prng: The random number generator object which controls random number
|
||||
generation.
|
||||
"""
|
||||
|
||||
# store local references to the different bits of the simulation
|
||||
self.beads = beads
|
||||
self.cell = cell
|
||||
self.forces = bforce
|
||||
self.prng = prng
|
||||
self.nm = nm
|
||||
|
||||
# n times the temperature
|
||||
dset(self,"ntemp", depend_value(name='ntemp',func=self.get_ntemp,
|
||||
dependencies=[dget(self,"temp")]))
|
||||
|
||||
# dependencies of the conserved quantity
|
||||
dget(self,"econs").add_dependency(dget(self.beads, "kin"))
|
||||
dget(self,"econs").add_dependency(dget(self.forces, "pot"))
|
||||
dget(self,"econs").add_dependency(dget(self.beads, "vpath"))
|
||||
|
||||
|
||||
def get_ntemp(self):
|
||||
"""Returns the PI simulation temperature (P times the physical T)."""
|
||||
|
||||
return self.temp*self.beads.nbeads
|
||||
|
||||
|
||||
def pstep(self):
|
||||
"""Dummy momenta propagator which does nothing."""
|
||||
|
||||
pass
|
||||
|
||||
def qcstep(self):
|
||||
"""Dummy centroid position propagator which does nothing."""
|
||||
|
||||
pass
|
||||
|
||||
def step(self):
|
||||
"""Dummy simulation time step which does nothing."""
|
||||
|
||||
pass
|
||||
|
||||
def get_econs(self):
|
||||
"""Calculates the conserved energy quantity for constant energy
|
||||
ensembles.
|
||||
"""
|
||||
|
||||
return self.beads.vpath*self.nm.omegan2 + self.nm.kin + self.forces.pot
|
||||
|
||||
|
||||
class NVEEnsemble(Ensemble):
|
||||
"""Ensemble object for constant energy simulations.
|
||||
|
||||
Has the relevant conserved quantity and normal mode propagator for the
|
||||
constant energy ensemble. Note that a temperature of some kind must be
|
||||
defined so that the spring potential can be calculated.
|
||||
|
||||
Attributes:
|
||||
ptime: The time taken in updating the velocities.
|
||||
qtime: The time taken in updating the positions.
|
||||
ttime: The time taken in applying the thermostat steps.
|
||||
|
||||
Depend objects:
|
||||
econs: Conserved energy quantity. Depends on the bead kinetic and
|
||||
potential energy, and the spring potential energy.
|
||||
"""
|
||||
|
||||
def __init__(self, dt, temp, fixcom=False):
|
||||
"""Initializes NVEEnsemble.
|
||||
|
||||
Args:
|
||||
dt: The simulation timestep.
|
||||
temp: The system temperature.
|
||||
fixcom: An optional boolean which decides whether the centre of mass
|
||||
motion will be constrained or not. Defaults to False.
|
||||
"""
|
||||
|
||||
super(NVEEnsemble,self).__init__(dt=dt,temp=temp, fixcom=fixcom)
|
||||
|
||||
def rmcom(self):
|
||||
"""This removes the centre of mass contribution to the kinetic energy.
|
||||
|
||||
Calculates the centre of mass momenta, then removes the mass weighted
|
||||
contribution from each atom. If the ensemble defines a thermostat, then
|
||||
the contribution to the conserved quantity due to this subtraction is
|
||||
added to the thermostat heat energy, as it is assumed that the centre of
|
||||
mass motion is due to the thermostat.
|
||||
|
||||
If there is a choice of thermostats, the thermostat
|
||||
connected to the centroid is chosen.
|
||||
"""
|
||||
|
||||
if (self.fixcom):
|
||||
pcom = np.zeros(3,float);
|
||||
|
||||
na3 = self.beads.natoms*3
|
||||
nb = self.beads.nbeads
|
||||
p = depstrip(self.beads.p)
|
||||
m = depstrip(self.beads.m3)[:,0:na3:3]
|
||||
M = self.beads[0].M
|
||||
|
||||
for i in range(3):
|
||||
pcom[i] = p[:,i:na3:3].sum()
|
||||
|
||||
if hasattr(self,"thermostat"):
|
||||
if hasattr(self.thermostat, "_thermos"):
|
||||
self.thermostat._thermos[0].ethermo += np.dot(pcom,pcom)/(2.0*M*nb)
|
||||
else:
|
||||
self.thermostat.ethermo += np.dot(pcom,pcom)/(2.0*M*nb)
|
||||
|
||||
# subtracts COM _velocity_
|
||||
pcom *= 1.0/(nb*M)
|
||||
for i in range(3):
|
||||
self.beads.p[:,i:na3:3] -= m*pcom[i]
|
||||
|
||||
def pstep(self):
|
||||
"""Velocity Verlet momenta propagator."""
|
||||
|
||||
self.beads.p += depstrip(self.forces.f)*(self.dt*0.5)
|
||||
|
||||
def qcstep(self):
|
||||
"""Velocity Verlet centroid position propagator."""
|
||||
|
||||
self.nm.qnm[0,:] += depstrip(self.nm.pnm)[0,:]/depstrip(self.beads.m3)[0]*self.dt
|
||||
|
||||
def step(self):
|
||||
"""Does one simulation time step."""
|
||||
|
||||
self.ptime = -time.time()
|
||||
self.pstep()
|
||||
self.ptime += time.time()
|
||||
|
||||
self.qtime = -time.time()
|
||||
self.qcstep()
|
||||
|
||||
self.nm.free_qstep()
|
||||
self.qtime += time.time()
|
||||
|
||||
self.ptime -= time.time()
|
||||
self.pstep()
|
||||
self.ptime += time.time()
|
||||
|
||||
self.ttime = -time.time()
|
||||
self.rmcom()
|
||||
self.ttime += time.time()
|
||||
|
||||
|
||||
class NVTEnsemble(NVEEnsemble):
|
||||
"""Ensemble object for constant temperature simulations.
|
||||
|
||||
Has the relevant conserved quantity and normal mode propagator for the
|
||||
constant temperature ensemble. Contains a thermostat object containing the
|
||||
algorithms to keep the temperature constant.
|
||||
|
||||
Attributes:
|
||||
thermostat: A thermostat object to keep the temperature constant.
|
||||
|
||||
Depend objects:
|
||||
econs: Conserved energy quantity. Depends on the bead kinetic and
|
||||
potential energy, the spring potential energy and the heat
|
||||
transferred to the thermostat.
|
||||
"""
|
||||
|
||||
def __init__(self, dt, temp, thermostat=None, fixcom=False):
|
||||
"""Initializes NVTEnsemble.
|
||||
|
||||
Args:
|
||||
dt: The simulation timestep.
|
||||
temp: The system temperature.
|
||||
thermostat: A thermostat object to keep the temperature constant.
|
||||
Defaults to Thermostat()
|
||||
fixcom: An optional boolean which decides whether the centre of mass
|
||||
motion will be constrained or not. Defaults to False.
|
||||
"""
|
||||
|
||||
super(NVTEnsemble,self).__init__(dt=dt,temp=temp, fixcom=fixcom)
|
||||
|
||||
if thermostat is None:
|
||||
self.thermostat = Thermostat()
|
||||
else:
|
||||
self.thermostat = thermostat
|
||||
|
||||
def bind(self, beads, nm, cell, bforce, prng):
|
||||
"""Binds beads, cell, bforce and prng to the ensemble.
|
||||
|
||||
This takes a beads object, a cell object, a forcefield object and a
|
||||
random number generator object and makes them members of the ensemble.
|
||||
It also then creates the objects that will hold the data needed in the
|
||||
ensemble algorithms and the dependency network. Also note that the
|
||||
thermostat timestep and temperature are defined relative to the system
|
||||
temperature, and the the thermostat temperature is held at the
|
||||
higher simulation temperature, as is appropriate.
|
||||
|
||||
Args:
|
||||
beads: The beads object from which the bead positions are taken.
|
||||
nm: A normal modes object used to do the normal modes transformation.
|
||||
cell: The cell object from which the system box is taken.
|
||||
bforce: The forcefield object from which the force and virial are
|
||||
taken.
|
||||
prng: The random number generator object which controls random number
|
||||
generation.
|
||||
"""
|
||||
|
||||
super(NVTEnsemble,self).bind(beads, nm, cell, bforce, prng)
|
||||
fixdof = None
|
||||
if self.fixcom:
|
||||
fixdof = 3
|
||||
|
||||
# first makes sure that the thermostat has the correct temperature, then proceed with binding it.
|
||||
deppipe(self,"ntemp", self.thermostat,"temp")
|
||||
deppipe(self,"dt", self.thermostat, "dt")
|
||||
|
||||
#decides whether the thermostat will work in the normal mode or
|
||||
#the bead representation.
|
||||
if isinstance(self.thermostat,ThermoNMGLE) or isinstance(self.thermostat,ThermoNMGLEG) or isinstance(self.thermostat,ThermoPILE_L) or isinstance(self.thermostat,ThermoPILE_G):
|
||||
self.thermostat.bind(nm=self.nm,prng=prng,fixdof=fixdof )
|
||||
else:
|
||||
self.thermostat.bind(beads=self.beads,prng=prng, fixdof=fixdof)
|
||||
|
||||
dget(self,"econs").add_dependency(dget(self.thermostat, "ethermo"))
|
||||
|
||||
def step(self):
|
||||
"""Does one simulation time step."""
|
||||
|
||||
self.ttime = -time.time()
|
||||
self.thermostat.step()
|
||||
self.rmcom()
|
||||
self.ttime += time.time()
|
||||
|
||||
self.ptime = -time.time()
|
||||
self.pstep()
|
||||
self.ptime += time.time()
|
||||
|
||||
self.qtime = -time.time()
|
||||
self.qcstep()
|
||||
self.nm.free_qstep()
|
||||
self.qtime += time.time()
|
||||
|
||||
self.ptime -= time.time()
|
||||
self.pstep()
|
||||
self.ptime += time.time()
|
||||
|
||||
self.ttime -= time.time()
|
||||
self.thermostat.step()
|
||||
self.rmcom()
|
||||
self.ttime += time.time()
|
||||
|
||||
def get_econs(self):
|
||||
"""Calculates the conserved energy quantity for constant temperature
|
||||
ensemble.
|
||||
"""
|
||||
|
||||
return NVEEnsemble.get_econs(self) + self.thermostat.ethermo
|
||||
|
||||
|
||||
class NPTEnsemble(NVTEnsemble):
|
||||
"""Ensemble object for constant pressure simulations.
|
||||
|
||||
Has the relevant conserved quantity and normal mode propagator for the
|
||||
constant pressure ensemble. Contains a thermostat object containing the
|
||||
algorithms to keep the temperature constant, and a barostat to keep the
|
||||
pressure constant.
|
||||
|
||||
Attributes:
|
||||
barostat: A barostat object to keep the pressure constant.
|
||||
|
||||
Depend objects:
|
||||
econs: Conserved energy quantity. Depends on the bead and cell kinetic
|
||||
and potential energy, the spring potential energy, the heat
|
||||
transferred to the beads and cell thermostat, the temperature and
|
||||
the cell volume.
|
||||
pext: External pressure.
|
||||
"""
|
||||
|
||||
def __init__(self, dt, temp, pext, thermostat=None, barostat=None, fixcom=False):
|
||||
"""Initializes NPTEnsemble.
|
||||
|
||||
Args:
|
||||
dt: The simulation timestep.
|
||||
temp: The system temperature.
|
||||
pext: The external pressure.
|
||||
thermostat: A thermostat object to keep the temperature constant.
|
||||
Defaults to Thermostat().
|
||||
barostat: A barostat object to keep the pressure constant.
|
||||
Defaults to Barostat().
|
||||
fixcom: An optional boolean which decides whether the centre of mass
|
||||
motion will be constrained or not. Defaults to False.
|
||||
"""
|
||||
|
||||
super(NPTEnsemble,self).__init__(dt, temp, thermostat, fixcom=fixcom)
|
||||
if barostat == None:
|
||||
self.barostat = Barostat()
|
||||
else:
|
||||
self.barostat = barostat
|
||||
|
||||
dset(self,"pext",depend_value(name='pext'))
|
||||
if not pext is None:
|
||||
self.pext = pext
|
||||
else: self.pext = 0.0
|
||||
|
||||
|
||||
def bind(self, beads, nm, cell, bforce, prng):
|
||||
"""Binds beads, cell, bforce and prng to the ensemble.
|
||||
|
||||
This takes a beads object, a cell object, a forcefield object and a
|
||||
random number generator object and makes them members of the ensemble.
|
||||
It also then creates the objects that will hold the data needed in the
|
||||
ensemble algorithms and the dependency network. Also note that the cell
|
||||
thermostat timesteps and temperatures are defined relative to the system
|
||||
temperature, and the the thermostat temperatures are held at the
|
||||
higher simulation temperature, as is appropriate.
|
||||
|
||||
Args:
|
||||
beads: The beads object from which the bead positions are taken.
|
||||
nm: A normal modes object used to do the normal modes transformation.
|
||||
cell: The cell object from which the system box is taken.
|
||||
bforce: The forcefield object from which the force and virial are
|
||||
taken.
|
||||
prng: The random number generator object which controls random number
|
||||
generation.
|
||||
"""
|
||||
|
||||
|
||||
fixdof = None
|
||||
if self.fixcom:
|
||||
fixdof = 3
|
||||
|
||||
super(NPTEnsemble,self).bind(beads, nm, cell, bforce, prng)
|
||||
self.barostat.bind(beads, nm, cell, bforce, prng=prng, fixdof=fixdof)
|
||||
|
||||
|
||||
deppipe(self,"ntemp", self.barostat, "temp")
|
||||
deppipe(self,"dt", self.barostat, "dt")
|
||||
deppipe(self,"pext", self.barostat, "pext")
|
||||
dget(self,"econs").add_dependency(dget(self.barostat, "ebaro"))
|
||||
|
||||
def get_econs(self):
|
||||
"""Calculates the conserved energy quantity for the constant pressure
|
||||
ensemble.
|
||||
"""
|
||||
|
||||
return NVTEnsemble.get_econs(self) + self.barostat.ebaro
|
||||
|
||||
def step(self):
|
||||
"""NPT time step.
|
||||
|
||||
Note that the barostat only propagates the centroid coordinates. If this
|
||||
approximation is made a centroid virial pressure and stress estimator can
|
||||
be defined, so this gives the best statistical convergence. This is
|
||||
allowed as the normal mode propagation is approximately unaffected
|
||||
by volume fluctuations as long as the system box is much larger than
|
||||
the radius of gyration of the ring polymers.
|
||||
"""
|
||||
|
||||
self.ttime = -time.time()
|
||||
self.thermostat.step()
|
||||
self.barostat.thermostat.step()
|
||||
self.rmcom()
|
||||
self.ttime += time.time()
|
||||
|
||||
self.ptime = -time.time()
|
||||
self.barostat.pstep()
|
||||
self.ptime += time.time()
|
||||
|
||||
self.qtime = -time.time()
|
||||
self.barostat.qcstep()
|
||||
self.nm.free_qstep()
|
||||
self.qtime += time.time()
|
||||
|
||||
self.ptime -= time.time()
|
||||
self.barostat.pstep()
|
||||
self.ptime += time.time()
|
||||
|
||||
self.ttime -= time.time()
|
||||
self.barostat.thermostat.step()
|
||||
self.thermostat.step()
|
||||
self.rmcom()
|
||||
self.ttime += time.time()
|
||||
|
||||
|
||||
class ReplayEnsemble(Ensemble):
|
||||
"""Ensemble object that just loads snapshots from an external file in sequence.
|
||||
|
||||
Has the relevant conserved quantity and normal mode propagator for the
|
||||
constant energy ensemble. Note that a temperature of some kind must be
|
||||
defined so that the spring potential can be calculated.
|
||||
|
||||
Attributes:
|
||||
intraj: The input trajectory file.
|
||||
ptime: The time taken in updating the velocities.
|
||||
qtime: The time taken in updating the positions.
|
||||
ttime: The time taken in applying the thermostat steps.
|
||||
|
||||
Depend objects:
|
||||
econs: Conserved energy quantity. Depends on the bead kinetic and
|
||||
potential energy, and the spring potential energy.
|
||||
"""
|
||||
|
||||
def __init__(self, dt, temp, fixcom=False, intraj=None):
|
||||
"""Initializes ReplayEnsemble.
|
||||
|
||||
Args:
|
||||
dt: The simulation timestep.
|
||||
temp: The system temperature.
|
||||
fixcom: An optional boolean which decides whether the centre of mass
|
||||
motion will be constrained or not. Defaults to False.
|
||||
intraj: The input trajectory file.
|
||||
"""
|
||||
|
||||
super(ReplayEnsemble,self).__init__(dt=dt,temp=temp,fixcom=fixcom)
|
||||
if intraj == None:
|
||||
raise ValueError("Must provide an initialized InitFile object to read trajectory from")
|
||||
self.intraj = intraj
|
||||
if intraj.mode == "manual":
|
||||
raise ValueError("Replay can only read from PDB or XYZ files -- or a single frame from a CHK file")
|
||||
self.rfile = open(self.intraj.value,"r")
|
||||
|
||||
def step(self):
|
||||
"""Does one simulation time step."""
|
||||
|
||||
self.ptime = self.ttime = 0
|
||||
self.qtime = -time.time()
|
||||
|
||||
try:
|
||||
if (self.intraj.mode == "xyz"):
|
||||
for b in self.beads:
|
||||
myatoms = read_xyz(self.rfile)
|
||||
myatoms.q *= unit_to_internal("length",self.intraj.units,1.0)
|
||||
b.q[:] = myatoms.q
|
||||
elif (self.intraj.mode == "pdb"):
|
||||
for b in self.beads:
|
||||
myatoms, mycell = read_pdb(self.rfile)
|
||||
myatoms.q *= unit_to_internal("length",self.intraj.units,1.0)
|
||||
mycell.h *= unit_to_internal("length",self.intraj.units,1.0)
|
||||
b.q[:] = myatoms.q
|
||||
self.cell.h[:] = mycell.h
|
||||
elif (self.intraj.mode == "chk" or self.intraj.mode == "checkpoint"):
|
||||
# reads configuration from a checkpoint file
|
||||
xmlchk = xml_parse_file(self.rfile) # Parses the file.
|
||||
|
||||
from ipi.inputs.simulation import InputSimulation
|
||||
simchk = InputSimulation()
|
||||
simchk.parse(xmlchk.fields[0][1])
|
||||
mycell = simchk.cell.fetch()
|
||||
mybeads = simchk.beads.fetch()
|
||||
self.cell.h[:] = mycell.h
|
||||
self.beads.q[:] = mybeads.q
|
||||
softexit.trigger(" # Read single checkpoint")
|
||||
except EOFError:
|
||||
softexit.trigger(" # Finished reading re-run trajectory")
|
||||
|
||||
self.qtime += time.time()
|
||||
|
||||
|
||||
@ -1,781 +0,0 @@
|
||||
"""Contains the classes that connect the driver to the python code.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Communicates with the driver code, obtaining the force, virial and potential.
|
||||
Deals with creating the jobs that will be sent to the driver, and
|
||||
returning the results to the python code.
|
||||
|
||||
Classes:
|
||||
ForceField: Base forcefield class with the generic methods and attributes.
|
||||
FFSocket: Deals with a single replica of the system
|
||||
ForceBeads: Deals with the parallelization of the force calculation over
|
||||
different beads.
|
||||
Forces: Deals with the parallelizatoin of the force calculation over
|
||||
different forcefields.
|
||||
"""
|
||||
|
||||
__all__ = ['ForceField', 'ForceBeads', 'Forces', 'FFSocket']
|
||||
|
||||
import numpy as np
|
||||
import time
|
||||
from ipi.utils.softexit import softexit
|
||||
from ipi.utils.messages import verbosity, warning
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils.nmtransform import nm_rescale
|
||||
from ipi.interfaces.sockets import InterfaceSocket
|
||||
from ipi.engine.beads import Beads
|
||||
|
||||
class ForceField(dobject):
|
||||
"""Base forcefield class.
|
||||
|
||||
Gives the standard methods and quantities needed in all the forcefield
|
||||
classes.
|
||||
|
||||
Attributes:
|
||||
atoms: An Atoms object containing all the atom positions.
|
||||
cell: A Cell object containing the system box.
|
||||
|
||||
Depend objects:
|
||||
ufvx: A list of the form [pot, f, vir]. These quantities are calculated
|
||||
all at one time by the driver, so are collected together. Each separate
|
||||
object is then taken from the list. Depends on the atom positions and
|
||||
the system box.
|
||||
extra: A string containing some formatted output returned by the client. Depends on ufvx.
|
||||
pot: A float giving the potential energy of the system. Depends on ufvx.
|
||||
f: An array containing all the components of the force. Depends on ufvx.
|
||||
fx: A slice of f containing only the x components of the forces.
|
||||
fy: A slice of f containing only the y components of the forces.
|
||||
fz: A slice of f containing only the z components of the forces.
|
||||
vir: An array containing the components of the virial tensor in upper
|
||||
triangular form, not divided by the volume. Depends on ufvx.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
"""Initializes ForceField."""
|
||||
|
||||
# ufvx is a list [ u, f, vir, extra ] which stores the results of the force
|
||||
#calculation
|
||||
dset(self,"ufvx", depend_value(name="ufvx", func=self.get_all))
|
||||
|
||||
def copy(self):
|
||||
"""Creates a deep copy without the bound objects.
|
||||
|
||||
Used in ForceBeads to create a ForceField for each replica of the system.
|
||||
|
||||
Returns:
|
||||
A ForceField object without atoms or cell attributes.
|
||||
"""
|
||||
|
||||
return type(self)(self.nbeads, self.weight)
|
||||
|
||||
def bind(self, atoms, cell):
|
||||
"""Binds atoms and cell to the forcefield.
|
||||
|
||||
This takes an atoms object and a cell object and makes them members of
|
||||
the forcefield. It also then creates the objects that will hold the data
|
||||
that the driver returns and the dependency network.
|
||||
|
||||
Args:
|
||||
atoms: The Atoms object from which the atom positions are taken.
|
||||
cell: The Cell object from which the system box is taken.
|
||||
"""
|
||||
|
||||
# stores a reference to the atoms and cell we are computing forces for
|
||||
self.atoms = atoms
|
||||
self.cell = cell
|
||||
|
||||
# ufv depends on the atomic positions and on the cell
|
||||
dget(self,"ufvx").add_dependency(dget(self.atoms,"q"))
|
||||
dget(self,"ufvx").add_dependency(dget(self.cell,"h"))
|
||||
|
||||
# potential and virial are to be extracted very simply from ufv
|
||||
dset(self,"pot",
|
||||
depend_value(name="pot", func=self.get_pot,
|
||||
dependencies=[dget(self,"ufvx")]))
|
||||
|
||||
dset(self,"vir",
|
||||
depend_array(name="vir", value=np.zeros((3,3),float),func=self.get_vir,
|
||||
dependencies=[dget(self,"ufvx")]))
|
||||
|
||||
# NB: the force requires a bit more work, to define shortcuts to xyz
|
||||
# slices without calculating the force at this point.
|
||||
fbase = np.zeros(atoms.natoms*3, float)
|
||||
dset(self,"f",
|
||||
depend_array(name="f", value=fbase, func=self.get_f,
|
||||
dependencies=[dget(self,"ufvx")]))
|
||||
|
||||
dset(self,"extra",
|
||||
depend_value(name="extra", func=self.get_extra,
|
||||
dependencies=[dget(self,"ufvx")]))
|
||||
|
||||
dset(self,"fx", depend_array(name="fx", value=fbase[0:3*atoms.natoms:3]))
|
||||
dset(self,"fy", depend_array(name="fy", value=fbase[1:3*atoms.natoms:3]))
|
||||
dset(self,"fz", depend_array(name="fz", value=fbase[2:3*atoms.natoms:3]))
|
||||
depcopy(self,"f", self,"fx")
|
||||
depcopy(self,"f", self,"fy")
|
||||
depcopy(self,"f", self,"fz")
|
||||
|
||||
def queue(self):
|
||||
"""Dummy queueing method."""
|
||||
|
||||
pass
|
||||
|
||||
def stop(self):
|
||||
"""Dummy queueing method."""
|
||||
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
"""Dummy queueing method."""
|
||||
|
||||
pass
|
||||
|
||||
def get_all(self):
|
||||
"""Dummy driver routine.
|
||||
|
||||
Returns:
|
||||
A list of the form [potential, force, virial] where the potential
|
||||
and all components of the force and virial have been set to zero.
|
||||
"""
|
||||
|
||||
return [0.0, np.zeros(3*self.atoms.natoms), np.zeros((3,3),float), ""]
|
||||
|
||||
def get_pot(self):
|
||||
"""Calls get_all routine of forcefield to update potential.
|
||||
|
||||
Returns:
|
||||
Potential energy.
|
||||
"""
|
||||
|
||||
return self.ufvx[0]
|
||||
|
||||
def get_f(self):
|
||||
"""Calls get_all routine of forcefield to update force.
|
||||
|
||||
Returns:
|
||||
An array containing all the components of the force.
|
||||
"""
|
||||
|
||||
return depstrip(self.ufvx[1])
|
||||
|
||||
def get_vir(self):
|
||||
"""Calls get_all routine of forcefield to update virial.
|
||||
|
||||
Returns:
|
||||
An array containing the virial in upper triangular form, not divided
|
||||
by the volume.
|
||||
"""
|
||||
|
||||
vir = depstrip(self.ufvx[2])
|
||||
vir[1,0] = 0.0
|
||||
vir[2,0:2] = 0.0
|
||||
return vir
|
||||
|
||||
def get_extra(self):
|
||||
"""Calls get_all routine of forcefield to update potential.
|
||||
|
||||
Returns:
|
||||
A string containing all formatted additional output that the
|
||||
client might have produced.
|
||||
"""
|
||||
|
||||
return self.ufvx[3]
|
||||
|
||||
|
||||
class FFSocket(ForceField):
|
||||
"""Interface between the PIMD code and the socket for a single replica.
|
||||
|
||||
Deals with an individual replica of the system, obtaining the potential
|
||||
force and virial appropriate to this system. Deals with the distribution of
|
||||
jobs to the interface.
|
||||
|
||||
Attributes:
|
||||
parameters: A dictionary of the parameters used by the driver. Of the
|
||||
form {'name': value}.
|
||||
socket: The interface object which contains the socket through which
|
||||
communication between the forcefield and the driver is done.
|
||||
request: During the force calculation step this holds a dictionary
|
||||
containing the relevant data for determining the progress of the step.
|
||||
Of the form {'atoms': atoms, 'cell': cell, 'pars': parameters,
|
||||
'status': status, 'result': result, 'id': bead id,
|
||||
'start': starting time}.
|
||||
"""
|
||||
|
||||
def __init__(self, pars=None, interface=None):
|
||||
"""Initializes FFSocket.
|
||||
|
||||
Args:
|
||||
pars: Optional dictionary, giving the parameters needed by the driver.
|
||||
interface: Optional Interface object, which contains the socket.
|
||||
"""
|
||||
|
||||
# a socket to the communication library is created or linked
|
||||
super(FFSocket,self).__init__()
|
||||
if interface is None:
|
||||
self.socket = InterfaceSocket()
|
||||
else:
|
||||
self.socket = interface
|
||||
|
||||
if pars is None:
|
||||
self.pars = {}
|
||||
else:
|
||||
self.pars = pars
|
||||
self.request = None
|
||||
|
||||
def bind(self, atoms, cell):
|
||||
"""Pass on the binding request from ForceBeads.
|
||||
|
||||
Also makes sure to set the socket's softexit.
|
||||
|
||||
Args:
|
||||
atoms: Atoms object from which the bead positions are taken.
|
||||
cell: Cell object from which the system box is taken.
|
||||
"""
|
||||
|
||||
super(FFSocket,self).bind(atoms, cell)
|
||||
|
||||
def copy(self):
|
||||
"""Creates a deep copy without the bound objects.
|
||||
|
||||
Used in ForceBeads to create a FFSocket for each replica of the system.
|
||||
|
||||
Returns:
|
||||
A FFSocket object without atoms or cell attributes.
|
||||
"""
|
||||
|
||||
# does not copy the bound objects
|
||||
# (i.e., the returned forcefield must be bound before use)
|
||||
return type(self)(self.pars, self.socket)
|
||||
|
||||
def get_all(self):
|
||||
"""Driver routine.
|
||||
|
||||
When one of the force, potential or virial are called, this sends the
|
||||
atoms and cell to the driver through the interface, requesting that the
|
||||
driver does the calculation. This then waits until the driver is finished,
|
||||
and then returns the ufvx list.
|
||||
|
||||
Returns:
|
||||
A list of the form [potential, force, virial, extra].
|
||||
"""
|
||||
|
||||
# this is converting the distribution library requests into [ u, f, v ] lists
|
||||
if self.request is None:
|
||||
self.request = self.socket.queue(self.atoms, self.cell, pars=self.pars, reqid=-1)
|
||||
while self.request["status"] != "Done":
|
||||
if self.request["status"] == "Exit":
|
||||
break
|
||||
time.sleep(self.socket.latency)
|
||||
if self.request["status"] == "Exit":
|
||||
softexit.trigger(" @Force: Requested returned a Exit status")
|
||||
|
||||
# data has been collected, so the request can be released and a slot
|
||||
#freed up for new calculations
|
||||
self.socket.release(self.request)
|
||||
result = self.request["result"]
|
||||
self.request = None
|
||||
|
||||
return result
|
||||
|
||||
def queue(self, reqid=-1):
|
||||
"""Sends the job to the interface queue directly.
|
||||
|
||||
Allows the ForceBeads object to ask for the ufvx list of each replica
|
||||
directly without going through the get_all function. This allows
|
||||
all the jobs to be sent at once, allowing them to be parallelized.
|
||||
|
||||
Args:
|
||||
reqid: An optional integer that indentifies requests of the same type,
|
||||
e.g. the bead index.
|
||||
"""
|
||||
|
||||
if self.request is None and dget(self,"ufvx").tainted():
|
||||
self.request = self.socket.queue(self.atoms, self.cell, pars=self.pars, reqid=reqid)
|
||||
|
||||
def run(self):
|
||||
"""Makes the socket start looking for driver codes.
|
||||
|
||||
Tells the interface code to start the thread that looks for
|
||||
connection from the driver codes in a loop. Until this point no
|
||||
jobs can be queued.
|
||||
"""
|
||||
|
||||
if not self.socket.started():
|
||||
self.socket.start_thread()
|
||||
|
||||
def stop(self):
|
||||
"""Makes the socket stop looking for driver codes.
|
||||
|
||||
Tells the interface code to stop the thread that looks for
|
||||
connection from the driver codes in a loop. After this point no
|
||||
jobs can be queued.
|
||||
"""
|
||||
|
||||
if self.socket.started():
|
||||
self.socket.end_thread()
|
||||
|
||||
|
||||
class ForceBeads(dobject):
|
||||
"""Class that gathers the forces for each replica together.
|
||||
|
||||
Deals with splitting the bead representation into
|
||||
separate replicas, and collecting the data from each replica.
|
||||
|
||||
Attributes:
|
||||
natoms: An integer giving the number of atoms.
|
||||
nbeads: An integer giving the number of beads.
|
||||
f_model: A model used to create the forcefield objects for each replica
|
||||
of the system.
|
||||
_forces: A list of the forcefield objects for all the replicas.
|
||||
weight: A float that will be used to weight the contribution of this
|
||||
forcefield to the total force.
|
||||
|
||||
Depend objects:
|
||||
f: An array containing the components of the force. Depends on each
|
||||
replica's ufvx list.
|
||||
pots: A list containing the potential energy for each system replica.
|
||||
Depends on each replica's ufvx list.
|
||||
virs: A list containing the virial tensor for each system replica.
|
||||
Depends on each replica's ufvx list.
|
||||
pot: The sum of the potential energy of the replicas.
|
||||
vir: The sum of the virial tensor of the replicas.
|
||||
extras: Strings containing some formatted output returned by the client.
|
||||
Depends on each replica's ufvx list.
|
||||
"""
|
||||
|
||||
def __init__(self, model, nbeads=0, weight=1.0):
|
||||
"""Initializes ForceBeads
|
||||
|
||||
Args:
|
||||
model: A model to be used to create the forcefield objects for all
|
||||
the replicas of the system.
|
||||
nbeads: The number of replicas.
|
||||
weight: A relative weight to be given to the values obtained with this
|
||||
forcefield. When the contribution of all the forcefields is
|
||||
combined to give a total force, the contribution of this forcefield
|
||||
will be weighted by this factor.
|
||||
"""
|
||||
|
||||
self.f_model = model
|
||||
self.nbeads = nbeads
|
||||
self.weight = weight
|
||||
|
||||
def copy(self):
|
||||
"""Creates a deep copy without the bound objects.
|
||||
|
||||
Used so that we can create multiple Forces objects from the same
|
||||
Forcebeads model, without binding a particular ForceBeads object twice.
|
||||
|
||||
Returns:
|
||||
A ForceBeads object without beads or cell attributes.
|
||||
"""
|
||||
|
||||
# does not copy the bound objects (i.e., the returned forcefield must be bound before use)
|
||||
return type(self)(self.f_model, self.nbeads, self.weight)
|
||||
|
||||
|
||||
def bind(self, beads, cell):
|
||||
"""Binds beads, cell and force to the forcefield.
|
||||
|
||||
Takes the beads, cell objects and makes them members of the forcefield.
|
||||
Also takes the force object and copies it once for each replica of the
|
||||
system, then binds each replica to one of the copies so that the force
|
||||
calculation can be parallelized. Creates the objects that will
|
||||
hold the data that the driver returns and the dependency network.
|
||||
|
||||
Args:
|
||||
beads: Beads object from which the bead positions are taken.
|
||||
cell: Cell object from which the system box is taken.
|
||||
"""
|
||||
|
||||
# stores a copy of the number of atoms and of beads
|
||||
#!TODO! make them read-only properties
|
||||
self.natoms = beads.natoms
|
||||
if (self.nbeads != beads.nbeads):
|
||||
raise ValueError("Binding together a Beads and a ForceBeads objects with different numbers of beads")
|
||||
|
||||
# creates an array of force objects, which are bound to the beads
|
||||
#and the cell
|
||||
self._forces = [];
|
||||
for b in range(self.nbeads):
|
||||
new_force = self.f_model.copy()
|
||||
new_force.bind(beads[b], cell)
|
||||
self._forces.append(new_force)
|
||||
|
||||
# f is a big array which assembles the forces on individual beads
|
||||
dset(self,"f",
|
||||
depend_array(name="f",value=np.zeros((self.nbeads,3*self.natoms)),
|
||||
func=self.f_gather,
|
||||
dependencies=[dget(self._forces[b],"f") for b in range(self.nbeads)]))
|
||||
|
||||
# collection of pots and virs from individual beads
|
||||
dset(self,"pots",
|
||||
depend_array(name="pots", value=np.zeros(self.nbeads,float),
|
||||
func=self.pot_gather,
|
||||
dependencies=[dget(self._forces[b],"pot") for b in range(self.nbeads)]))
|
||||
dset(self,"virs",
|
||||
depend_array(name="virs", value=np.zeros((self.nbeads,3,3),float),
|
||||
func=self.vir_gather,
|
||||
dependencies=[dget(self._forces[b],"vir") for b in range(self.nbeads)]))
|
||||
dset(self,"extras",
|
||||
depend_value(name="extras", value=np.zeros(self.nbeads,float),
|
||||
func=self.extra_gather,
|
||||
dependencies=[dget(self._forces[b],"extra") for b in range(self.nbeads)]))
|
||||
|
||||
# total potential and total virial
|
||||
dset(self,"pot",
|
||||
depend_value(name="pot", func=(lambda: self.pots.sum()),
|
||||
dependencies=[dget(self,"pots")]))
|
||||
dset(self,"vir",
|
||||
depend_array(name="vir", func=self.get_vir, value=np.zeros((3,3)),
|
||||
dependencies=[dget(self,"virs")]))
|
||||
|
||||
def run(self):
|
||||
"""Makes the socket start looking for driver codes.
|
||||
|
||||
Tells the interface code to start the thread that looks for
|
||||
connection from the driver codes in a loop. Until this point no
|
||||
jobs can be queued.
|
||||
"""
|
||||
|
||||
for b in range(self.nbeads):
|
||||
self._forces[b].run()
|
||||
|
||||
def stop(self):
|
||||
"""Makes the socket stop looking for driver codes.
|
||||
|
||||
Tells the interface code to stop the thread that looks for
|
||||
connection from the driver codes in a loop. After this point no
|
||||
jobs can be queued.
|
||||
"""
|
||||
|
||||
for b in range(self.nbeads):
|
||||
self._forces[b].stop()
|
||||
|
||||
def queue(self):
|
||||
"""Submits all the required force calculations to the interface."""
|
||||
|
||||
# this should be called in functions which access u,v,f for ALL the beads,
|
||||
# before accessing them. it is basically pre-queueing so that the
|
||||
# distributed-computing magic can work
|
||||
for b in range(self.nbeads):
|
||||
self._forces[b].queue(reqid=b)
|
||||
|
||||
def pot_gather(self):
|
||||
"""Obtains the potential energy for each replica.
|
||||
|
||||
Returns:
|
||||
A list of the potential energy of each replica of the system.
|
||||
"""
|
||||
|
||||
self.queue()
|
||||
return np.array([b.pot for b in self._forces], float)
|
||||
|
||||
def extra_gather(self):
|
||||
"""Obtains the potential energy for each replica.
|
||||
|
||||
Returns:
|
||||
A list of the potential energy of each replica of the system.
|
||||
"""
|
||||
|
||||
self.queue()
|
||||
return [b.extra for b in self._forces]
|
||||
|
||||
def vir_gather(self):
|
||||
"""Obtains the virial for each replica.
|
||||
|
||||
Returns:
|
||||
A list of the virial of each replica of the system.
|
||||
"""
|
||||
|
||||
self.queue()
|
||||
return np.array([b.vir for b in self._forces], float)
|
||||
|
||||
def f_gather(self):
|
||||
"""Obtains the force vector for each replica.
|
||||
|
||||
Returns:
|
||||
An array with all the components of the force. Row i gives the force
|
||||
array for replica i of the system.
|
||||
"""
|
||||
|
||||
newf = np.zeros((self.nbeads,3*self.natoms),float)
|
||||
|
||||
self.queue()
|
||||
for b in range(self.nbeads):
|
||||
newf[b] = depstrip(self._forces[b].f)
|
||||
|
||||
return newf
|
||||
|
||||
#serial
|
||||
# for b in range(self.nbeads): newf[b]=self._forces[b].f
|
||||
# threaded
|
||||
# bthreads=[]
|
||||
# print "starting threads"
|
||||
# for b in range(self.nbeads):
|
||||
# thread=threading.Thread(target=self._getbead, args=(b,newf,))
|
||||
# thread.start()
|
||||
# bthreads.append(thread)
|
||||
|
||||
# print "waiting threads"
|
||||
# for b in range(self.nbeads): bthreads[b].join()
|
||||
# print "threads joined in"
|
||||
|
||||
def get_vir(self):
|
||||
"""Sums the virial of each replica.
|
||||
|
||||
Not the actual system virial, as it has not been divided by either the
|
||||
number of beads or the cell volume.
|
||||
|
||||
Returns:
|
||||
Virial sum.
|
||||
"""
|
||||
|
||||
vir = np.zeros((3,3))
|
||||
for v in depstrip(self.virs):
|
||||
vir += v
|
||||
return vir
|
||||
|
||||
def __len__(self):
|
||||
"""Length function.
|
||||
|
||||
This is called whenever the standard function len(forcebeads) is used.
|
||||
|
||||
Returns:
|
||||
The number of beads.
|
||||
"""
|
||||
|
||||
return self.nbeads
|
||||
|
||||
def __getitem__(self,index):
|
||||
"""Overwrites standard getting function.
|
||||
|
||||
This is called whenever the standard function forcebeads[index] is used.
|
||||
Returns the force on bead index.
|
||||
|
||||
Args:
|
||||
index: The index of the replica of the system to be accessed.
|
||||
|
||||
Returns:
|
||||
The forces acting on the replica of the system given by the index.
|
||||
"""
|
||||
|
||||
return self._forces[index]
|
||||
|
||||
|
||||
class Forces(dobject):
|
||||
"""Class that gathers all the forces together.
|
||||
|
||||
Collects many forcefield instances and parallelizes getting the forces
|
||||
in a PIMD environment.
|
||||
|
||||
Attributes:
|
||||
natoms: An integer giving the number of atoms.
|
||||
nbeads: An integer giving the number of beads.
|
||||
nforces: An integer giving the number of ForceBeads objects.
|
||||
mforces: A list of all the forcefield objects.
|
||||
mbeads: A list of all the beads objects. Some of these may be contracted
|
||||
ring polymers, with a smaller number of beads than of the simulation.
|
||||
mweights: A list of the weights of all the forcefields.
|
||||
mrpc: A list of the objects containing the functions required to
|
||||
contract the ring polymers of the different forcefields.
|
||||
|
||||
Depend objects:
|
||||
f: An array containing the components of the force. Depends on each
|
||||
replica's ufvx list.
|
||||
pots: A list containing the potential energy for each system replica.
|
||||
Depends on each replica's ufvx list.
|
||||
virs: A list containing the virial tensor for each system replica.
|
||||
Depends on each replica's ufvx list.
|
||||
extras: A list containing the "extra" strings for each replica.
|
||||
pot: The sum of the potential energy of the replicas.
|
||||
vir: The sum of the virial tensor of the replicas.
|
||||
"""
|
||||
|
||||
def bind(self, beads, cell, flist):
|
||||
|
||||
self.natoms = beads.natoms
|
||||
self.nbeads = beads.nbeads
|
||||
self.nforces = len(flist)
|
||||
|
||||
# flist should be a list of tuples containing ( "name", forcebeads)
|
||||
self.mforces = []
|
||||
self.mbeads = []
|
||||
self.mweights = []
|
||||
self.mrpc = []
|
||||
|
||||
# a "function factory" to generate functions to automatically update
|
||||
#contracted paths
|
||||
def make_rpc(rpc, beads):
|
||||
return lambda: rpc.b1tob2(depstrip(beads.q))
|
||||
|
||||
# creates new force objects, possibly acting on contracted path
|
||||
#representations
|
||||
for (ftype, fbeads) in flist:
|
||||
|
||||
# creates an automatically-updated contracted beads object
|
||||
newb = fbeads.nbeads
|
||||
newforce = fbeads.copy()
|
||||
newweight = fbeads.weight
|
||||
|
||||
# if the number of beads for this force component is unspecified,
|
||||
#assume full force evaluation
|
||||
if newb == 0:
|
||||
newb = beads.nbeads
|
||||
newforce.nbeads = newb
|
||||
|
||||
newbeads = Beads(beads.natoms, newb)
|
||||
newrpc = nm_rescale(beads.nbeads, newb)
|
||||
|
||||
dget(newbeads,"q")._func = make_rpc(newrpc, beads)
|
||||
for b in newbeads:
|
||||
# must update also indirect access to the beads coordinates
|
||||
dget(b,"q")._func = dget(newbeads,"q")._func
|
||||
|
||||
# makes newbeads.q depend from beads.q
|
||||
dget(beads,"q").add_dependant(dget(newbeads,"q"))
|
||||
|
||||
#now we create a new forcebeads which is bound to newbeads!
|
||||
newforce.bind(newbeads, cell)
|
||||
|
||||
#adds information we will later need to the appropriate lists.
|
||||
self.mweights.append(newweight)
|
||||
self.mbeads.append(newbeads)
|
||||
self.mforces.append(newforce)
|
||||
self.mrpc.append(newrpc)
|
||||
|
||||
#now must expose an interface that gives overall forces
|
||||
dset(self,"f",
|
||||
depend_array(name="f",value=np.zeros((self.nbeads,3*self.natoms)),
|
||||
func=self.f_combine,
|
||||
dependencies=[dget(ff, "f") for ff in self.mforces] ) )
|
||||
|
||||
# collection of pots and virs from individual ff objects
|
||||
dset(self,"pots",
|
||||
depend_array(name="pots", value=np.zeros(self.nbeads,float),
|
||||
func=self.pot_combine,
|
||||
dependencies=[dget(ff, "pots") for ff in self.mforces]) )
|
||||
|
||||
# must take care of the virials!
|
||||
dset(self,"virs",
|
||||
depend_array(name="virs", value=np.zeros((self.nbeads,3,3),float),
|
||||
func=self.vir_combine,
|
||||
dependencies=[dget(ff, "virs") for ff in self.mforces]) )
|
||||
|
||||
dset(self,"extras",
|
||||
depend_value(name="extras", value=np.zeros(self.nbeads,float),
|
||||
func=self.extra_combine,
|
||||
dependencies=[dget(ff, "extras") for ff in self.mforces]))
|
||||
|
||||
# total potential and total virial
|
||||
dset(self,"pot",
|
||||
depend_value(name="pot", func=(lambda: self.pots.sum()),
|
||||
dependencies=[dget(self,"pots")]))
|
||||
dset(self,"vir",
|
||||
depend_array(name="vir", func=self.get_vir, value=np.zeros((3,3)),
|
||||
dependencies=[dget(self,"virs")]))
|
||||
|
||||
def run(self):
|
||||
"""Makes the socket start looking for driver codes.
|
||||
|
||||
Tells the interface code to start the thread that looks for
|
||||
connection from the driver codes in a loop. Until this point no
|
||||
jobs can be queued.
|
||||
"""
|
||||
|
||||
for ff in self.mforces:
|
||||
ff.run()
|
||||
|
||||
def stop(self):
|
||||
"""Makes the socket stop looking for driver codes.
|
||||
|
||||
Tells the interface code to stop the thread that looks for
|
||||
connection from the driver codes in a loop. After this point no
|
||||
jobs can be queued.
|
||||
"""
|
||||
|
||||
for ff in self.mforces:
|
||||
ff.stop()
|
||||
|
||||
def queue(self):
|
||||
"""Submits all the required force calculations to the forcefields."""
|
||||
|
||||
for ff in self.mforces:
|
||||
ff.queue()
|
||||
|
||||
def get_vir(self):
|
||||
"""Sums the virial of each forcefield.
|
||||
|
||||
Not the actual system virial.
|
||||
|
||||
Returns:
|
||||
Virial sum.
|
||||
"""
|
||||
|
||||
vir = np.zeros((3,3))
|
||||
for v in depstrip(self.virs):
|
||||
vir += v
|
||||
return vir
|
||||
|
||||
def f_combine(self):
|
||||
"""Obtains the total force vector."""
|
||||
|
||||
self.queue()
|
||||
rf = np.zeros((self.nbeads,3*self.natoms),float)
|
||||
for k in range(self.nforces):
|
||||
# "expand" to the total number of beads the forces from the
|
||||
#contracted one
|
||||
rf += self.mweights[k]*self.mrpc[k].b2tob1(depstrip(self.mforces[k].f))
|
||||
return rf
|
||||
|
||||
def pot_combine(self):
|
||||
"""Obtains the potential energy for each forcefield."""
|
||||
|
||||
self.queue()
|
||||
rp = np.zeros(self.nbeads,float)
|
||||
for k in range(self.nforces):
|
||||
# "expand" to the total number of beads the potentials from the
|
||||
#contracted one
|
||||
rp += self.mweights[k]*self.mrpc[k].b2tob1(self.mforces[k].pots)
|
||||
return rp
|
||||
|
||||
def extra_combine(self):
|
||||
"""Obtains the potential energy for each forcefield."""
|
||||
|
||||
self.queue()
|
||||
rp = [ "" for b in range(self.nbeads) ]
|
||||
for k in range(self.nforces):
|
||||
# "expand" to the total number of beads the potentials from the
|
||||
#contracted one
|
||||
for b in range(self.nbeads):
|
||||
rp[b] += self.mforces[k].extras[b]
|
||||
return rp
|
||||
|
||||
def vir_combine(self):
|
||||
"""Obtains the virial tensor for each forcefield."""
|
||||
|
||||
self.queue()
|
||||
rp = np.zeros((self.nbeads,3,3),float)
|
||||
for k in range(self.nforces):
|
||||
virs = depstrip(self.mforces[k].virs)
|
||||
# "expand" to the total number of beads the virials from the
|
||||
#contracted one, element by element
|
||||
for i in range(3):
|
||||
for j in range(3):
|
||||
rp[:,i,j] += self.mweights[k]*self.mrpc[k].b2tob1(virs[:,i,j])
|
||||
return rp
|
||||
@ -1,549 +0,0 @@
|
||||
"""Contains the classes that are used to initialize data in the simulation.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
These classes can either be used to restart a simulation with some different
|
||||
data or used to start a calculation. Any data given in these classes will
|
||||
overwrite data given elsewhere.
|
||||
|
||||
Classes:
|
||||
Initializer: Holds the functions that are required to initialize objects in
|
||||
the code. Data can be initialized from a file, or according to a
|
||||
particular parameter. An example of the former would be initializing
|
||||
the configurations from a xyz file, an example of the latter would be
|
||||
initializing the velocities according to the physical temperature.
|
||||
InitBase: Simple class that reads data from a string or file.
|
||||
InitIndexed: The same as init base, but can also optionally hold
|
||||
information about which atom or bead to initialize from.
|
||||
|
||||
Functions:
|
||||
init_xyz: Reads beads data from a xyz file.
|
||||
init_pdb: Reads beads and cell data from a pdb file.
|
||||
init_chk: Reads beads, cell and thermostat data from a checkpoint file.
|
||||
init_beads: Initializes a beads object from an Initializer object.
|
||||
init_vector: Initializes a vector from an Initializer object.
|
||||
set_vector: Initializes a vector from another vector.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
|
||||
from ipi.engine.beads import Beads
|
||||
from ipi.engine.cell import Cell
|
||||
from ipi.engine.normalmodes import NormalModes
|
||||
from ipi.engine.ensembles import Ensemble
|
||||
from ipi.utils.io.io_xyz import read_xyz
|
||||
from ipi.utils.io.io_pdb import read_pdb
|
||||
from ipi.utils.io.io_xml import xml_parse_file
|
||||
from ipi.utils.depend import dobject
|
||||
from ipi.utils.units import Constants, unit_to_internal
|
||||
from ipi.utils.nmtransform import nm_rescale
|
||||
from ipi.utils.messages import verbosity, warning, info
|
||||
|
||||
__all__ = ['Initializer', 'InitBase', 'InitIndexed']
|
||||
|
||||
class InitBase(dobject):
|
||||
"""Base class for initializer objects.
|
||||
|
||||
Attributes:
|
||||
value: A duck-typed stored value.
|
||||
mode: A string that determines how the value is to be interpreted.
|
||||
units: A string giving which unit the value is in.
|
||||
"""
|
||||
|
||||
def __init__(self, value="", mode="", units="", **others):
|
||||
"""Initializes InitFile.
|
||||
|
||||
Args:
|
||||
value: A string which specifies what value to initialize the
|
||||
simulation property to.
|
||||
mode: A string specifying what style of initialization should be
|
||||
used to read the data.
|
||||
units: A string giving which unit the value is in.
|
||||
"""
|
||||
|
||||
self.value = value
|
||||
self.mode = mode
|
||||
self.units = units
|
||||
|
||||
for (o, v) in others.items():
|
||||
self.__dict__[o] = v
|
||||
|
||||
|
||||
class InitIndexed(InitBase):
|
||||
"""Class to initialize objects which can be set for a particular bead.
|
||||
|
||||
Attributes:
|
||||
index: Which atom to initialize the value of.
|
||||
bead: Which bead to initialize the value of.
|
||||
"""
|
||||
|
||||
def __init__(self, value="", mode="", units="", index=-1, bead=-1):
|
||||
"""Initializes InitFile.
|
||||
|
||||
Args:
|
||||
value: A string which specifies what value to initialize the
|
||||
simulation property to.
|
||||
mode: A string specifying what style of initialization should be
|
||||
used to read the data.
|
||||
units: A string giving which unit the value is in.
|
||||
index: Which atom to initialize the value of.
|
||||
bead: Which bead to initialize the value of.
|
||||
"""
|
||||
|
||||
super(InitIndexed,self).__init__(value=value, mode=mode, units=units, index=index, bead=bead)
|
||||
|
||||
|
||||
def init_xyz(filename):
|
||||
"""Reads an xyz file and returns the data contained in it.
|
||||
|
||||
Args:
|
||||
filename: A string giving the name of the xyz file to be read from.
|
||||
|
||||
Returns:
|
||||
A list of Atoms objects as read from each frame of the xyz file.
|
||||
"""
|
||||
|
||||
rfile = open(filename,"r")
|
||||
ratoms = []
|
||||
while True:
|
||||
#while loop, so that more than one configuration can be given
|
||||
#so multiple beads can be initialized at once.
|
||||
try:
|
||||
myatoms = read_xyz(rfile)
|
||||
except EOFError:
|
||||
break
|
||||
ratoms.append(myatoms)
|
||||
return ratoms
|
||||
|
||||
def init_pdb(filename):
|
||||
"""Reads an pdb file and returns the data contained in it.
|
||||
|
||||
Args:
|
||||
filename: A string giving the name of the pdb file to be read from.
|
||||
|
||||
Returns:
|
||||
A list of Atoms objects as read from each frame of the pdb file, and
|
||||
a Cell object as read from the final pdb frame.
|
||||
"""
|
||||
|
||||
rfile = open(filename,"r")
|
||||
ratoms = []
|
||||
while True:
|
||||
#while loop, so that more than one configuration can be given
|
||||
#so multiple beads can be initialized at once.
|
||||
try:
|
||||
myatoms, rcell = read_pdb(rfile)
|
||||
except EOFError:
|
||||
break
|
||||
ratoms.append(myatoms)
|
||||
return ( ratoms, rcell ) # if multiple frames, the last cell is returned
|
||||
|
||||
def init_chk(filename):
|
||||
"""Reads an checkpoint file and returns the data contained in it.
|
||||
|
||||
Args:
|
||||
filename: A string giving the name of the checkpoint file to be read from.
|
||||
|
||||
Returns:
|
||||
A Beads object, Cell object and Thermostat object as read from the
|
||||
checkpoint file.
|
||||
"""
|
||||
|
||||
# reads configuration from a checkpoint file
|
||||
rfile = open(filename,"r")
|
||||
xmlchk = xml_parse_file(rfile) # Parses the file.
|
||||
|
||||
from ipi.inputs.simulation import InputSimulation
|
||||
simchk = InputSimulation()
|
||||
simchk.parse(xmlchk.fields[0][1])
|
||||
rcell = simchk.cell.fetch()
|
||||
rbeads = simchk.beads.fetch()
|
||||
rthermo = simchk.ensemble.thermostat.fetch()
|
||||
|
||||
return (rbeads, rcell, rthermo)
|
||||
|
||||
def init_beads(iif, nbeads):
|
||||
"""A file to initialize a beads object from an appropriate initializer
|
||||
object.
|
||||
|
||||
Args:
|
||||
iif: An Initializer object which has information on the bead positions.
|
||||
nbeads: The number of beads.
|
||||
|
||||
Raises:
|
||||
ValueError: If called using an Initializer object with a 'manual' mode.
|
||||
"""
|
||||
|
||||
mode = iif.mode; value = iif.value
|
||||
if mode == "xyz" or mode == "pdb":
|
||||
if mode == "xyz": ratoms = init_xyz(value)
|
||||
if mode == "pdb": ratoms = init_pdb(value)[0]
|
||||
rbeads = Beads(ratoms[0].natoms,len(ratoms))
|
||||
for i in range(len(ratoms)): rbeads[i] = ratoms[i]
|
||||
elif mode == "chk":
|
||||
rbeads = init_chk(value)[0]
|
||||
elif mode == "manual":
|
||||
raise ValueError("Cannot initialize manually a whole beads object.")
|
||||
|
||||
return rbeads
|
||||
|
||||
def init_vector(iif, nbeads, momenta=False):
|
||||
"""A file to initialize a vector from an appropriate initializer
|
||||
object.
|
||||
|
||||
Args:
|
||||
iif: An Initializer object specifying the value of a vector.
|
||||
nbeads: The number of beads.
|
||||
momenta: If bead momenta rather than positions are being initialized
|
||||
from a checkpoint file, this is set to True.
|
||||
"""
|
||||
|
||||
mode = iif.mode; value = iif.value
|
||||
if mode == "xyz" or mode == "pdb":
|
||||
rq = init_beads(iif, nbeads).q
|
||||
elif mode == "chk":
|
||||
if momenta: rq = init_beads(iif, nbeads).p
|
||||
else: rq = init_beads(iif, nbeads).q
|
||||
elif mode == "manual":
|
||||
rq = value
|
||||
|
||||
# determines the size of the input data
|
||||
if mode == "manual":
|
||||
if iif.bead >= 0: # if there is a bead specifier then we return a single bead slice
|
||||
nbeads = 1
|
||||
natoms = len(rq)/nbeads/3
|
||||
rq.shape = (nbeads,3*natoms)
|
||||
|
||||
return rq
|
||||
|
||||
def set_vector(iif, dq, rq):
|
||||
"""A file to initialize a vector from an another vector.
|
||||
|
||||
If the first dimension is different, i.e. the two vectors correspond
|
||||
to a different number of beads, then the ring polymer contraction/expansion
|
||||
is used to rescale the original vector to the one used in the simulation,
|
||||
as described in the paper T. E. Markland and D. E. Manolopoulos, J. Chem.
|
||||
Phys. 129, 024105, (2008).
|
||||
|
||||
Args:
|
||||
iif: An Initializer object specifying the value of a vector.
|
||||
dq: The vector to be initialized.
|
||||
rq: The vector to initialize from.
|
||||
"""
|
||||
|
||||
(nbeads, natoms) = rq.shape; natoms /= 3
|
||||
(dbeads, datoms) = dq.shape; datoms /= 3
|
||||
|
||||
# Check that indices make sense
|
||||
if iif.index < 0 and natoms != datoms:
|
||||
raise ValueError("Initialization tries to mix up structures with different atom numbers.")
|
||||
if iif.index >= datoms:
|
||||
raise ValueError("Cannot initialize single atom as atom index %d is larger than the number of atoms" % iif.index)
|
||||
if iif.bead >= dbeads:
|
||||
raise ValueError("Cannot initialize single bead as bead index %d is larger than the number of beads" % iif.bead)
|
||||
|
||||
if iif.bead < 0: # we are initializing the path
|
||||
res = nm_rescale(nbeads,dbeads) # path rescaler
|
||||
if nbeads != dbeads:
|
||||
info(" # Initialize is rescaling from %5d beads to %5d beads" % (nbeads, dbeads), verbosity.low)
|
||||
if iif.index < 0:
|
||||
dq[:] = res.b1tob2(rq)
|
||||
else: # we are initializing a specific atom
|
||||
dq[:,3*iif.index:3*(iif.index+1)] = res.b1tob2(rq)
|
||||
else: # we are initializing a specific bead
|
||||
if iif.index < 0:
|
||||
dq[iif.bead] = rq
|
||||
else:
|
||||
dq[iif.bead,3*iif.index:3*(iif.index+1)] = rq
|
||||
|
||||
class Initializer(dobject):
|
||||
"""Class that deals with the initialization of data.
|
||||
|
||||
This can either be used to initialize the atom positions and the cell data
|
||||
from a file, or to initialize them from a beads, atoms or cell object.
|
||||
|
||||
Currently, we use a ring polymer contraction scheme to create a new beads
|
||||
object from one given in initialize if they have different numbers of beads,
|
||||
as described in the paper T. E. Markland and D. E. Manolopoulos, J. Chem.
|
||||
Phys. 129, 024105, (2008). If the new beads object has more beads than
|
||||
the beads object it was initialized from, we set the higher ring polymer
|
||||
normal modes to zero.
|
||||
|
||||
Attributes:
|
||||
queue: A list of things to initialize. Each member of the list is a tuple
|
||||
of the form ('type', 'object'), where 'type' specifies what kind of
|
||||
initialization is being done, and 'object' gives the data to
|
||||
initialize it from.
|
||||
"""
|
||||
|
||||
def __init__(self, nbeads=0, queue=None):
|
||||
"""Initializes Initializer.
|
||||
|
||||
Arguments:
|
||||
nbeads: The number of beads that we need in the simulation. Not
|
||||
necessarily the same as the number of beads of the objects we are
|
||||
initializing the data from.
|
||||
queue: A list of things to initialize. Each member of the list is a
|
||||
tuple of the form ('type', 'object'), where 'type' specifies what
|
||||
kind of initialization is being done, and 'object' gives the data to
|
||||
initialize it from.
|
||||
"""
|
||||
|
||||
self.nbeads = nbeads
|
||||
|
||||
if queue is None:
|
||||
self.queue = []
|
||||
else:
|
||||
self.queue = queue
|
||||
|
||||
def init_stage1(self, simul):
|
||||
"""Initializes the simulation -- first stage.
|
||||
|
||||
Takes a simulation object, and uses all the data in the initialization
|
||||
queue to fill up the beads and cell data needed to run the simulation.
|
||||
|
||||
Args:
|
||||
simul: A simulation object to be initialized.
|
||||
|
||||
Raises:
|
||||
ValueError: Raised if there is a problem with the initialization,
|
||||
if something that should have been has not been, or if the objects
|
||||
that have been specified are not compatible with each other.
|
||||
"""
|
||||
|
||||
if simul.beads.nbeads == 0:
|
||||
fpos = fmom = fmass = flab = fcell = False # we don't have an explicitly defined beads object yet
|
||||
else:
|
||||
fpos = fmom = fmass = flab = fcell = True
|
||||
|
||||
for (k,v) in self.queue:
|
||||
info(" # Initializer (stage 1) parsing " + str(k) + " object.", verbosity.high)
|
||||
|
||||
if k == "cell":
|
||||
if fcell :
|
||||
warning("Overwriting previous cell parameters", verbosity.medium)
|
||||
if v.mode == "pdb":
|
||||
rh = init_pdb(v.value)[1].h
|
||||
elif v.mode == "chk":
|
||||
rh = init_chk(v.value)[1].h
|
||||
else:
|
||||
rh = v.value.reshape((3,3))
|
||||
rh *= unit_to_internal("length",v.units,1.0)
|
||||
|
||||
simul.cell.h = rh
|
||||
if simul.cell.V == 0.0:
|
||||
ValueError("Cell provided has zero volume")
|
||||
|
||||
fcell = True
|
||||
elif k == "masses":
|
||||
if simul.beads.nbeads == 0:
|
||||
raise ValueError("Cannot initialize the masses before the size of the system is known")
|
||||
if fmass:
|
||||
warning("Overwriting previous atomic masses", verbosity.medium)
|
||||
if v.mode == "manual":
|
||||
rm = v.value
|
||||
else:
|
||||
rm = init_beads(v, self.nbeads).m
|
||||
rm *= unit_to_internal("mass",v.units,1.0)
|
||||
|
||||
if v.bead < 0: # we are initializing the path
|
||||
if (fmom and fmass):
|
||||
warning("Rescaling momenta to make up for changed mass", verbosity.medium)
|
||||
simul.beads.p /= simul.beads.sm3 # go to mass-scaled momenta, that are mass-invariant
|
||||
if v.index < 0:
|
||||
simul.beads.m = rm
|
||||
else: # we are initializing a specific atom
|
||||
simul.beads.m[v.index:v.index+1] = rm
|
||||
if (fmom and fmass): # finishes correcting the momenta
|
||||
simul.beads.p *= simul.beads.sm3 # back to normal momenta
|
||||
else:
|
||||
raise ValueError("Cannot change the mass of a single bead")
|
||||
fmass = True
|
||||
|
||||
elif k == "labels":
|
||||
if simul.beads.nbeads == 0:
|
||||
raise ValueError("Cannot initialize the labels before the size of the system is known")
|
||||
if flab:
|
||||
warning("Overwriting previous atomic labels", verbosity.medium)
|
||||
if v.mode == "manual":
|
||||
rn = v.value
|
||||
else:
|
||||
rn = init_beads(v, self.nbeads).names
|
||||
|
||||
if v.bead < 0: # we are initializing the path
|
||||
if v.index < 0:
|
||||
simul.beads.names = rn
|
||||
else: # we are initializing a specific atom
|
||||
simul.beads.names[v.index:v.index+1] = rn
|
||||
else:
|
||||
raise ValueError("Cannot change the label of a single bead")
|
||||
flab = True
|
||||
|
||||
elif k == "positions":
|
||||
if fpos:
|
||||
warning("Overwriting previous atomic positions", verbosity.medium)
|
||||
# read the atomic positions as a vector
|
||||
rq = init_vector(v, self.nbeads)
|
||||
rq *= unit_to_internal("length",v.units,1.0)
|
||||
(nbeads, natoms) = rq.shape; natoms /= 3
|
||||
|
||||
# check if we must initialize the simulation beads
|
||||
if simul.beads.nbeads == 0:
|
||||
if v.index >= 0:
|
||||
raise ValueError("Cannot initialize single atoms before the size of the system is known")
|
||||
simul.beads.resize(natoms,self.nbeads)
|
||||
|
||||
set_vector(v, simul.beads.q, rq)
|
||||
fpos = True
|
||||
|
||||
elif (k == "velocities" or k == "momenta") and v.mode == "thermal" : # intercept here thermal initialization, so we don't need to check further down
|
||||
if fmom:
|
||||
warning("Overwriting previous atomic momenta", verbosity.medium)
|
||||
if simul.beads.natoms == 0:
|
||||
raise ValueError("Cannot initialize momenta before the size of the system is known.")
|
||||
if not fmass:
|
||||
raise ValueError("Trying to resample velocities before having masses.")
|
||||
|
||||
rtemp = v.value * unit_to_internal("temperature",v.units,1.0)
|
||||
if rtemp <= 0:
|
||||
warning("Using the simulation temperature to resample velocities", verbosity.low)
|
||||
rtemp = simul.ensemble.temp
|
||||
else:
|
||||
info(" # Resampling velocities at temperature %s %s" % (v.value, v.units), verbosity.low)
|
||||
|
||||
# pull together a mock initialization to get NM masses right
|
||||
#without too much code duplication
|
||||
if v.bead >= 0:
|
||||
raise ValueError("Cannot thermalize a single bead")
|
||||
if v.index >= 0:
|
||||
rnatoms = 1
|
||||
else:
|
||||
rnatoms = simul.beads.natoms
|
||||
rbeads = Beads(rnatoms, simul.beads.nbeads)
|
||||
if v.index < 0:
|
||||
rbeads.m[:] = simul.beads.m
|
||||
else:
|
||||
rbeads.m[:] = simul.beads.m[v.index]
|
||||
rnm = NormalModes(mode=simul.nm.mode, transform_method=simul.nm.transform_method, freqs=simul.nm.nm_freqs)
|
||||
rens = Ensemble(dt=simul.ensemble.dt, temp=simul.ensemble.temp)
|
||||
rnm.bind(rbeads,rens)
|
||||
# then we exploit the sync magic to do a complicated initialization
|
||||
# in the NM representation
|
||||
# with (possibly) shifted-frequencies NM
|
||||
rnm.pnm = simul.prng.gvec((rbeads.nbeads,3*rbeads.natoms))*np.sqrt(rnm.dynm3)*np.sqrt(rbeads.nbeads*rtemp*Constants.kb)
|
||||
|
||||
if v.index < 0:
|
||||
simul.beads.p = rbeads.p
|
||||
else:
|
||||
simul.beads.p[:,3*v.index:3*(v.index+1)] = rbeads.p
|
||||
fmom = True
|
||||
|
||||
elif k == "momenta":
|
||||
if fmom:
|
||||
warning("Overwriting previous atomic momenta", verbosity.medium)
|
||||
# read the atomic momenta as a vector
|
||||
rp = init_vector(v, self.nbeads, momenta = True)
|
||||
rp *= unit_to_internal("momentum",v.units,1.0)
|
||||
(nbeads, natoms) = rp.shape; natoms /= 3
|
||||
|
||||
# checks if we must initialize the simulation beads
|
||||
if simul.beads.nbeads == 0:
|
||||
if v.index >= 0 :
|
||||
raise ValueError("Cannot initialize single atoms before the size of the system is known")
|
||||
simul.beads.resize(natoms,self.nbeads)
|
||||
|
||||
rp *= np.sqrt(self.nbeads/nbeads)
|
||||
set_vector(v, simul.beads.p, rp)
|
||||
fmom = True
|
||||
|
||||
elif k == "velocities":
|
||||
if fmom:
|
||||
warning("Overwriting previous atomic momenta", verbosity.medium)
|
||||
# read the atomic velocities as a vector
|
||||
rv = init_vector(v, self.nbeads)
|
||||
rv *= unit_to_internal("velocity",v.units,1.0)
|
||||
(nbeads, natoms) = rv.shape; natoms /= 3
|
||||
|
||||
# checks if we must initialize the simulation beads
|
||||
if simul.beads.nbeads == 0 or not fmass:
|
||||
ValueError("Cannot initialize velocities before the masses of the atoms are known")
|
||||
simul.beads.resize(natoms,self.nbeads)
|
||||
|
||||
warning("Initializing from velocities uses the previously defined masses -- not the masses inferred from the file -- to build momenta", verbosity.low)
|
||||
if v.index >= 0:
|
||||
rv *= simul.beads.m[v.index]
|
||||
elif v.bead >= 0:
|
||||
rv *= simul.beads.m3[0]
|
||||
else:
|
||||
rv *= simul.beads.m3
|
||||
rv *= np.sqrt(self.nbeads/nbeads)
|
||||
set_vector(v, simul.beads.p, rv)
|
||||
fmom = True
|
||||
elif k == "thermostat": pass # thermostats must be initialized in a second stage
|
||||
|
||||
if simul.beads.natoms == 0:
|
||||
raise ValueError("Initializer could not initialize the atomic positions")
|
||||
if simul.cell.V == 0:
|
||||
raise ValueError("Initializer could not initialize the cell")
|
||||
for i in range(simul.beads.natoms):
|
||||
if simul.beads.m[i] <= 0:
|
||||
raise ValueError("Initializer could not initialize the masses")
|
||||
if simul.beads.names[i] == "":
|
||||
raise ValueError("Initializer could not initialize the atom labels")
|
||||
if not fmom:
|
||||
warning("Momenta not specified in initialize. Will start with zero velocity if they are not specified in beads.", verbosity.low)
|
||||
|
||||
def init_stage2(self, simul):
|
||||
"""Initializes the simulation -- second stage.
|
||||
|
||||
Takes a simulation object which has been fully generated,
|
||||
and restarts additional information such as the thermostat internal state.
|
||||
|
||||
Args:
|
||||
simul: A simulation object to be initialized.
|
||||
|
||||
Raises:
|
||||
ValueError: Raised if there is a problem with the initialization,
|
||||
if something that should have been has not been, or if the objects
|
||||
that have been specified are not compatible with each other.
|
||||
"""
|
||||
|
||||
for (k,v) in self.queue:
|
||||
info(" # Initializer (stage 2) parsing " + str(k) + " object.", verbosity.high)
|
||||
|
||||
if k == "gle":
|
||||
# read thermostat parameters from file
|
||||
if not ( hasattr(simul.ensemble, "thermostat") ):
|
||||
raise ValueError("Ensemble does not have a thermostat to initialize")
|
||||
if not ( hasattr(simul.ensemble.thermostat, "s") ):
|
||||
raise ValueError("There is nothing to initialize in non-GLE thermostats")
|
||||
ssimul = simul.ensemble.thermostat.s
|
||||
if v.mode == "manual":
|
||||
sinput = v.value.copy()
|
||||
if (sinput.size() != ssimul.size() ):
|
||||
raise ValueError("Size mismatch in thermostat initialization data")
|
||||
sinput.shape = ssimul.shape
|
||||
elif v.mode == "chk":
|
||||
rthermo = init_chk(v.value)[2]
|
||||
if not hasattr(rthermo,"s"):
|
||||
raise ValueError("Checkpoint file does not contain usable thermostat data")
|
||||
sinput = rthermo.s.copy()
|
||||
if sinput.shape != ssimul.shape :
|
||||
raise ValueError("Shape mismatch in thermostat initialization data")
|
||||
|
||||
# if all the preliminary checks are good, we can initialize the s's
|
||||
ssimul[:] = sinput
|
||||
@ -1,400 +0,0 @@
|
||||
"""Contains the classes that deal with the normal mode representation.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Deals with the normal mode transformation, including the complications
|
||||
introduced by PA-CMD when the bead masses are rescaled. Also deals with
|
||||
the change in the dynamics introduced by this mass-scaling, and has its
|
||||
own functions to calculate the kinetic energy, and the exact propagator
|
||||
in the normal mode representation under the ring polymer Hamiltonian.
|
||||
|
||||
Classes:
|
||||
NormalModes: Deals with the normal mode transformation in RPMD and PA-CMD.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils import units
|
||||
from ipi.utils import nmtransform
|
||||
from ipi.utils.messages import verbosity, warning, info
|
||||
|
||||
__all__ = [ "NormalModes" ]
|
||||
|
||||
class NormalModes(dobject):
|
||||
""" A helper class to manipulate the path NM.
|
||||
|
||||
Normal-modes transformation, determination of path frequencies,
|
||||
dynamical mass matrix change, etc.
|
||||
|
||||
Attributes:
|
||||
natoms: The number of atoms.
|
||||
nbeads: The number of beads.
|
||||
beads: The beads object for which the normal mode transformation should
|
||||
be done.
|
||||
ensemble: The ensemble object, specifying the temperature to hold the
|
||||
system to.
|
||||
transform: A nm_trans object that contains the functions that are
|
||||
required for the normal mode transformation.
|
||||
|
||||
Depend objects:
|
||||
mode: A string specifying how the bead masses are chosen.
|
||||
transform_method: A string specifying how to do the normal mode
|
||||
transformation.
|
||||
nm_freqs: An array that specifies how the normal mode frequencies
|
||||
of the ring polymers are to be calculated, and thus how the
|
||||
bead masses should be chosen.
|
||||
qnm: The bead positions in the normal mode representation. Depends on
|
||||
beads.q.
|
||||
pnm: The bead momenta in the normal mode representation. Depends on
|
||||
beads.p.
|
||||
omegan: The effective vibrational frequency for the interaction
|
||||
between the replicas. Depends on the simulation temperature.
|
||||
omegan2: omegan**2.
|
||||
omegak: The normal mode frequencies for the free ring polymer.
|
||||
Depends on omegan.
|
||||
prop_pq: An array holding the exact normal mode propagator for the
|
||||
free ring polymer, using mass scaled coordinates.
|
||||
See J. Chem. Phys. 133, 124101 (2010). Depends on the bead masses
|
||||
and the timestep.
|
||||
nm_factor: An array of dynamical mass factors associated with each of
|
||||
the normal modes. Depends on nm_freqs and mode.
|
||||
dynm3: An array that gives the dynamical masses of individual atoms in the
|
||||
normal modes representation. Depends on nm_factor and beads.m3.
|
||||
dynomegak: The scaled vibrational frequencies. Depends on nm_factor and
|
||||
omegak.
|
||||
kins: A list of the kinetic energy for each normal mode, as
|
||||
calculated in the normal mode representation, using the
|
||||
dynamical mass factors. Depends on beads.sm3, beads.p and nm_factor.
|
||||
kin: The total kinetic energy, as calculated in the normal mode
|
||||
representation, using the dynamical mass factors.
|
||||
kstress: The kinetic stress tensor, as calculated in the normal mode
|
||||
representation, using the dynamical mass factors. Depends on
|
||||
beads.sm3, beads.p and nm_factor.
|
||||
"""
|
||||
|
||||
def __init__(self, mode="rpmd", transform_method="fft", freqs=None):
|
||||
"""Initializes NormalModes.
|
||||
|
||||
Sets the options for the normal mode transform.
|
||||
|
||||
Args:
|
||||
mode: A string specifying how to calculate the bead masses.
|
||||
transform_method: A string specifying how to do the normal mode
|
||||
transformation.
|
||||
freqs: A list of data used to calculate the dynamical mass factors.
|
||||
"""
|
||||
|
||||
if freqs is None:
|
||||
freqs = []
|
||||
dset(self,"mode", depend_value(name='mode', value=mode))
|
||||
dset(self,"transform_method",
|
||||
depend_value(name='transform_method', value=transform_method))
|
||||
dset(self,"nm_freqs",
|
||||
depend_array(name="nm_freqs",value=np.asarray(freqs, float) ) )
|
||||
|
||||
def bind(self, beads, ensemble):
|
||||
""" Initializes the normal modes object and binds to beads and ensemble.
|
||||
|
||||
Do all the work down here as we need a full-formed necklace and ensemble
|
||||
to know how this should be done.
|
||||
|
||||
Args:
|
||||
beads: A beads object to be bound.
|
||||
ensemble: An ensemble object to be bound.
|
||||
"""
|
||||
|
||||
self.nbeads = beads.nbeads
|
||||
self.natoms = beads.natoms
|
||||
|
||||
# stores a reference to the bound beads and ensemble objects
|
||||
self.beads = beads
|
||||
self.ensemble = ensemble
|
||||
|
||||
# sets up what's necessary to perform nm transformation.
|
||||
if self.transform_method == "fft":
|
||||
self.transform = nmtransform.nm_fft(nbeads=self.nbeads, natoms=self.natoms)
|
||||
elif self.transform_method == "matrix":
|
||||
self.transform = nmtransform.nm_trans(nbeads=self.nbeads)
|
||||
|
||||
# creates arrays to store normal modes representation of the path.
|
||||
# must do a lot of piping to create "ex post" a synchronization between the beads and the nm
|
||||
sync_q = synchronizer()
|
||||
sync_p = synchronizer()
|
||||
dset(self,"qnm",
|
||||
depend_array(name="qnm",
|
||||
value=np.zeros((self.nbeads,3*self.natoms), float),
|
||||
func={"q": (lambda : self.transform.b2nm(depstrip(self.beads.q)) ) },
|
||||
synchro=sync_q ) )
|
||||
dset(self,"pnm",
|
||||
depend_array(name="pnm",
|
||||
value=np.zeros((self.nbeads,3*self.natoms), float),
|
||||
func={"p": (lambda : self.transform.b2nm(depstrip(self.beads.p)) ) },
|
||||
synchro=sync_p ) )
|
||||
|
||||
# must overwrite the functions
|
||||
dget(self.beads, "q")._func = { "qnm": (lambda : self.transform.nm2b(depstrip(self.qnm)) ) }
|
||||
dget(self.beads, "p")._func = { "pnm": (lambda : self.transform.nm2b(depstrip(self.pnm)) ) }
|
||||
dget(self.beads, "q").add_synchro(sync_q)
|
||||
dget(self.beads, "p").add_synchro(sync_p)
|
||||
|
||||
# also within the "atomic" interface to beads
|
||||
for b in range(self.nbeads):
|
||||
dget(self.beads._blist[b],"q")._func = { "qnm": (lambda : self.transform.nm2b(depstrip(self.qnm)) ) }
|
||||
dget(self.beads._blist[b],"p")._func = { "pnm": (lambda : self.transform.nm2b(depstrip(self.pnm)) ) }
|
||||
dget(self.beads._blist[b],"q").add_synchro(sync_q)
|
||||
dget(self.beads._blist[b],"p").add_synchro(sync_p)
|
||||
|
||||
|
||||
# finally, we mark the beads as those containing the set positions
|
||||
dget(self.beads, "q").update_man()
|
||||
dget(self.beads, "p").update_man()
|
||||
|
||||
# create path-frequencies related properties
|
||||
dset(self,"omegan",
|
||||
depend_value(name='omegan', func=self.get_omegan,
|
||||
dependencies=[dget(self.ensemble,"temp")]) )
|
||||
dset(self,"omegan2", depend_value(name='omegan2',func=self.get_omegan2,
|
||||
dependencies=[dget(self,"omegan")]) )
|
||||
dset(self,"omegak", depend_array(name='omegak',
|
||||
value=np.zeros(self.beads.nbeads,float),
|
||||
func=self.get_omegak, dependencies=[dget(self,"omegan")]) )
|
||||
|
||||
# sets up "dynamical" masses -- mass-scalings to give the correct RPMD/CMD dynamics
|
||||
dset(self,"nm_factor", depend_array(name="nmm",
|
||||
value=np.zeros(self.nbeads, float), func=self.get_nmm,
|
||||
dependencies=[dget(self,"nm_freqs"), dget(self,"mode") ]) )
|
||||
dset(self,"dynm3", depend_array(name="dm3",
|
||||
value=np.zeros((self.nbeads,3*self.natoms), float),func=self.get_dynm3,
|
||||
dependencies=[dget(self,"nm_factor"), dget(self.beads, "m3")] ) )
|
||||
dset(self,"dynomegak", depend_array(name="dynomegak",
|
||||
value=np.zeros(self.nbeads, float), func=self.get_dynwk,
|
||||
dependencies=[dget(self,"nm_factor"), dget(self,"omegak") ]) )
|
||||
|
||||
dset(self,"prop_pq",
|
||||
depend_array(name='prop_pq',value=np.zeros((self.beads.nbeads,2,2)),
|
||||
func=self.get_prop_pq,
|
||||
dependencies=[dget(self,"omegak"), dget(self,"nm_factor"), dget(self.ensemble,"dt")]) )
|
||||
|
||||
# if the mass matrix is not the RPMD one, the MD kinetic energy can't be
|
||||
# obtained in the bead representation because the masses are all mixed up
|
||||
dset(self,"kins",
|
||||
depend_array(name="kins",value=np.zeros(self.nbeads, float),
|
||||
func=self.get_kins,
|
||||
dependencies=[dget(self,"pnm"), dget(self.beads,"sm3"), dget(self, "nm_factor") ] ))
|
||||
dset(self,"kin",
|
||||
depend_value(name="kin", func=self.get_kin,
|
||||
dependencies=[dget(self,"kins")] ))
|
||||
dset(self,"kstress",
|
||||
depend_array(name="kstress",value=np.zeros((3,3), float),
|
||||
func=self.get_kstress,
|
||||
dependencies=[dget(self,"pnm"), dget(self.beads,"sm3"), dget(self, "nm_factor") ] ))
|
||||
|
||||
def get_omegan(self):
|
||||
"""Returns the effective vibrational frequency for the interaction
|
||||
between replicas.
|
||||
"""
|
||||
|
||||
return self.ensemble.temp*self.nbeads*units.Constants.kb/units.Constants.hbar
|
||||
|
||||
def get_omegan2(self):
|
||||
"""Returns omegan**2."""
|
||||
|
||||
return self.omegan**2
|
||||
|
||||
def get_omegak(self):
|
||||
"""Gets the normal mode frequencies.
|
||||
|
||||
Returns:
|
||||
A list of the normal mode frequencies for the free ring polymer.
|
||||
The first element is the centroid frequency (0.0).
|
||||
"""
|
||||
|
||||
return 2*self.omegan*np.array([np.sin(k*np.pi/self.nbeads) for k in range(self.nbeads)])
|
||||
|
||||
def get_dynwk(self):
|
||||
"""Gets the dynamical normal mode frequencies.
|
||||
|
||||
Returns:
|
||||
A list of the scaled normal mode frequencies for the free ring polymer.
|
||||
The first element is the centroid frequency (0.0).
|
||||
"""
|
||||
|
||||
return self.omegak/np.sqrt(self.nm_factor)
|
||||
|
||||
def get_prop_pq(self):
|
||||
"""Gets the normal mode propagator matrix.
|
||||
|
||||
Note the special treatment for the centroid normal mode, which is
|
||||
propagated using the standard velocity Verlet algorithm as required.
|
||||
Note that both the normal mode positions and momenta are propagated
|
||||
using this matrix.
|
||||
|
||||
Returns:
|
||||
An array of the form (nbeads, 2, 2). Each 2*2 array prop_pq[i,:,:]
|
||||
gives the exact propagator for the i-th normal mode of the
|
||||
ring polymer.
|
||||
"""
|
||||
|
||||
dt = self.ensemble.dt
|
||||
pqk = np.zeros((self.nbeads,2,2), float)
|
||||
pqk[0] = np.array([[1,0], [dt,1]])
|
||||
|
||||
for b in range(1, self.nbeads):
|
||||
sk = np.sqrt(self.nm_factor[b]) # NOTE THAT THE PROPAGATOR USES MASS-SCALED MOMENTA!
|
||||
|
||||
dtomegak = self.omegak[b]*dt/sk
|
||||
c = np.cos(dtomegak)
|
||||
s = np.sin(dtomegak)
|
||||
pqk[b,0,0] = c
|
||||
pqk[b,1,1] = c
|
||||
pqk[b,0,1] = -s*self.omegak[b]*sk
|
||||
pqk[b,1,0] = s/(self.omegak[b]*sk)
|
||||
|
||||
return pqk
|
||||
|
||||
def get_nmm(self):
|
||||
"""Returns dynamical mass factors, i.e. the scaling of normal mode
|
||||
masses that determine the path dynamics (but not statics)."""
|
||||
|
||||
# also checks that the frequencies and the mode given in init are
|
||||
# consistent with the beads and ensemble
|
||||
|
||||
dmf = np.zeros(self.nbeads,float)
|
||||
dmf[:] = 1.0
|
||||
if self.mode == "rpmd":
|
||||
if len(self.nm_freqs) > 0:
|
||||
warning("nm.frequencies will be ignored for RPMD mode.", verbosity.low)
|
||||
elif self.mode == "manual":
|
||||
if len(self.nm_freqs) != self.nbeads-1:
|
||||
raise ValueError("Manual path mode requires (nbeads-1) frequencies, one for each internal mode of the path.")
|
||||
for b in range(1, self.nbeads):
|
||||
sk = self.omegak[b]/self.nm_freqs[b-1]
|
||||
dmf[b] = sk**2
|
||||
elif self.mode == "pa-cmd":
|
||||
if len(self.nm_freqs) > 1:
|
||||
warning("Only the first element in nm.frequencies will be considered for PA-CMD mode.", verbosity.low)
|
||||
if len(self.nm_freqs) == 0:
|
||||
raise ValueError("PA-CMD mode requires the target frequency of all the internal modes.")
|
||||
for b in range(1, self.nbeads):
|
||||
sk = self.omegak[b]/self.nm_freqs[0]
|
||||
info(" ".join(["NM FACTOR", str(b), str(sk), str(self.omegak[b]), str(self.nm_freqs[0])]), verbosity.medium)
|
||||
dmf[b] = sk**2
|
||||
elif self.mode == "wmax-cmd":
|
||||
if len(self.nm_freqs) > 2:
|
||||
warning("Only the first two element in nm.frequencies will be considered for WMAX-CMD mode.", verbosity.low)
|
||||
if len(self.nm_freqs) < 2:
|
||||
raise ValueError("WMAX-CMD mode requires [wmax, wtarget]. The normal modes will be scaled such that the first internal mode is at frequency wtarget and all the normal modes coincide at frequency wmax.")
|
||||
wmax = self.nm_freqs[0]
|
||||
wt = self.nm_freqs[1]
|
||||
for b in range(1, self.nbeads):
|
||||
sk = 1.0/np.sqrt((wt)**2*(1+(wmax/self.omegak[1])**2)/(wmax**2+(self.omegak[b])**2))
|
||||
dmf[b] = sk**2
|
||||
|
||||
return dmf
|
||||
|
||||
def get_dynm3(self):
|
||||
"""Returns an array with the dynamical masses of individual atoms in the normal modes representation."""
|
||||
|
||||
dm3 = np.zeros(self.beads.m3.shape,float)
|
||||
for b in range(self.nbeads):
|
||||
dm3[b] = self.beads.m3[b]*self.nm_factor[b]
|
||||
|
||||
return dm3
|
||||
|
||||
def free_qstep(self):
|
||||
"""Exact normal mode propagator for the free ring polymer.
|
||||
|
||||
Note that the propagator works in mass scaled coordinates, so that the
|
||||
propagator matrix can be determined independently from the particular
|
||||
atom masses, and so the same propagator will work for all the atoms in
|
||||
the system. All the ring polymers are propagated at the same time by a
|
||||
matrix multiplication.
|
||||
|
||||
Also note that the centroid coordinate is propagated in qcstep, so is
|
||||
not altered here.
|
||||
"""
|
||||
|
||||
if self.nbeads == 1:
|
||||
pass
|
||||
else:
|
||||
pq = np.zeros((2,self.natoms*3),float)
|
||||
sm = depstrip(self.beads.sm3)[0]
|
||||
prop_pq = depstrip(self.prop_pq)
|
||||
for k in range(1,self.nbeads):
|
||||
pq[0,:] = depstrip(self.pnm)[k]/sm
|
||||
pq[1,:] = depstrip(self.qnm)[k]*sm
|
||||
pq = np.dot(prop_pq[k],pq)
|
||||
self.qnm[k] = pq[1,:]/sm
|
||||
self.pnm[k] = pq[0,:]*sm
|
||||
|
||||
def get_kins(self):
|
||||
"""Gets the MD kinetic energy for all the normal modes.
|
||||
|
||||
Returns:
|
||||
A list of the kinetic energy for each NM.
|
||||
"""
|
||||
|
||||
kmd = np.zeros(self.nbeads,float)
|
||||
sm = depstrip(self.beads.sm3[0])
|
||||
pnm = depstrip(self.pnm)
|
||||
nmf = depstrip(self.nm_factor)
|
||||
|
||||
# computes the MD ke in the normal modes representation, to properly account for CMD mass scaling
|
||||
for b in range(self.nbeads):
|
||||
sp = pnm[b]/sm # mass-scaled momentum of b-th NM
|
||||
kmd[b] = np.dot(sp,sp)*0.5/nmf[b] # include the partially adiabatic CMD mass scaling
|
||||
|
||||
return kmd
|
||||
|
||||
def get_kin(self):
|
||||
"""Gets the total MD kinetic energy.
|
||||
|
||||
Note that this does not correspond to the quantum kinetic energy estimate
|
||||
for the system.
|
||||
|
||||
Returns:
|
||||
The sum of the kinetic energy of each NM in the path.
|
||||
"""
|
||||
|
||||
return self.kins.sum()
|
||||
|
||||
def get_kstress(self):
|
||||
"""Calculates the total MD kinetic stress tensor.
|
||||
|
||||
Note that this does not correspond to the quantum kinetic stress tensor
|
||||
estimate for the system.
|
||||
|
||||
Returns:
|
||||
The sum of the MD kinetic stress tensor contributions from each NM.
|
||||
"""
|
||||
|
||||
kmd = np.zeros((3,3),float)
|
||||
sm = depstrip(self.beads.sm3[0])
|
||||
pnm = depstrip(self.pnm)
|
||||
nmf = depstrip(self.nm_factor)
|
||||
|
||||
for b in range(self.nbeads):
|
||||
sp = pnm[b]/sm # mass-scaled momentum of b-th NM
|
||||
|
||||
for i in range(3):
|
||||
for j in range(3):
|
||||
# computes the outer product of the p of various normal modes
|
||||
# singling out Cartesian components to build the tensor
|
||||
# also takes care of the possibility of having non-RPMD masses
|
||||
kmd[i,j] += np.dot(sp[i:3*self.natoms:3],sp[j:3*self.natoms:3])/nmf[b]
|
||||
|
||||
return kmd
|
||||
@ -1,378 +0,0 @@
|
||||
"""Classes to deal with output of simulation data.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Holds classes to deal with the output of different properties, trajectories
|
||||
and the restart files.
|
||||
|
||||
Classes:
|
||||
PropertyOutput: Deals with outputting properties.
|
||||
TrajectoryOutput: Deals with outputting trajectories.
|
||||
CheckpointOutput: Deals with outputting restart files.
|
||||
"""
|
||||
|
||||
import os
|
||||
import numpy as np
|
||||
import ipi.inputs.simulation
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils.io.io_xml import *
|
||||
from ipi.engine.properties import getkey
|
||||
|
||||
__all__ = [ 'PropertyOutput', 'TrajectoryOutput', 'CheckpointOutput' ]
|
||||
|
||||
class PropertyOutput(dobject):
|
||||
"""Class dealing with outputting a set of properties to file.
|
||||
|
||||
Does not do any calculation, just manages opening a file, getting data
|
||||
from a Properties object and outputting with the desired stride.
|
||||
|
||||
Attributes:
|
||||
filename: The name of the file to output to.
|
||||
outlist: A list of the properties to be output.
|
||||
stride: The number of steps that should be taken between outputting the
|
||||
data to file.
|
||||
flush: How often we should flush to disk.
|
||||
nout: Number of steps since data was last flushed.
|
||||
out: The output stream on which to output the properties.
|
||||
simul: The simulation object to get the data to be output from.
|
||||
"""
|
||||
|
||||
|
||||
def __init__(self, filename="out", stride=1, flush=1, outlist=None):
|
||||
"""Initializes a property output stream opening the corresponding
|
||||
file name.
|
||||
|
||||
Also writes out headers.
|
||||
|
||||
Args:
|
||||
filename: A string giving the name of the file to be output to.
|
||||
stride: An integer giving how many steps should be taken between
|
||||
outputting the data to file.
|
||||
flush: Number of writes to file between flushing data.
|
||||
outlist: A list of all the properties that should be output.
|
||||
"""
|
||||
|
||||
if outlist is None:
|
||||
outlist = np.zeros(0,np.dtype('|S1024'))
|
||||
self.filename = filename
|
||||
self.outlist = np.asarray(outlist,np.dtype('|S1024'))
|
||||
self.stride = stride
|
||||
self.flush = flush
|
||||
self.nout = 0
|
||||
self.out = None
|
||||
|
||||
def bind(self, simul):
|
||||
"""Binds output proxy to simulation object.
|
||||
|
||||
Args:
|
||||
simul: A simulation object to be bound.
|
||||
"""
|
||||
|
||||
self.simul = simul
|
||||
|
||||
# Checks as soon as possible if some asked-for properties are
|
||||
# missing or misspelled
|
||||
for what in self.outlist:
|
||||
key = getkey(what)
|
||||
if not key in self.simul.properties.property_dict.keys():
|
||||
print "Computable properties list: ", self.simul.properties.property_dict.keys()
|
||||
raise KeyError(key + " is not a recognized property")
|
||||
|
||||
self.open_stream()
|
||||
|
||||
def open_stream(self):
|
||||
"""Opens the output stream."""
|
||||
|
||||
try:
|
||||
self.out = open(self.filename, "a")
|
||||
except:
|
||||
raise ValueError("Could not open file " + self.filename + " for output")
|
||||
|
||||
# print nice header if information is available on the properties
|
||||
if (self.simul.step == 0) :
|
||||
icol = 1
|
||||
for what in self.outlist:
|
||||
ohead = "# "
|
||||
key = getkey(what)
|
||||
prop = self.simul.properties.property_dict[key]
|
||||
|
||||
if "size" in prop and prop["size"] > 1:
|
||||
ohead += "cols. %3d-%-3d" % ( icol, icol+prop["size"] - 1 )
|
||||
icol += prop["size"]
|
||||
else:
|
||||
ohead += "column %3d " % ( icol )
|
||||
icol += 1
|
||||
ohead += " --> %s " % (what)
|
||||
if "help" in prop:
|
||||
ohead += ": " + prop["help"]
|
||||
self.out.write(ohead + "\n")
|
||||
|
||||
def close_stream():
|
||||
"""Closes the output stream."""
|
||||
|
||||
self.out.close()
|
||||
|
||||
def write(self):
|
||||
"""Outputs the required properties of the system.
|
||||
|
||||
Note that properties are outputted using the same format as for the
|
||||
output to the xml checkpoint files, as specified in io_xml.
|
||||
|
||||
Raises:
|
||||
KeyError: Raised if one of the properties specified in the output list
|
||||
are not contained in the property_dict member of properties.
|
||||
"""
|
||||
|
||||
if not (self.simul.step + 1) % self.stride == 0:
|
||||
return
|
||||
self.out.write(" ")
|
||||
for what in self.outlist:
|
||||
try:
|
||||
quantity = self.simul.properties[what]
|
||||
except KeyError:
|
||||
raise KeyError(what + " is not a recognized property")
|
||||
if not hasattr(quantity,"__len__") :
|
||||
self.out.write(write_type(float, quantity) + " ")
|
||||
else:
|
||||
for el in quantity:
|
||||
self.out.write(write_type(float, el) + " ")
|
||||
|
||||
self.out.write("\n")
|
||||
|
||||
self.nout += 1
|
||||
if self.flush > 0 and self.nout >= self.flush :
|
||||
self.out.flush()
|
||||
os.fsync(self.out) # we REALLY want to print out! pretty please OS let us do it.
|
||||
self.nout = 0
|
||||
|
||||
|
||||
class TrajectoryOutput(dobject):
|
||||
"""Class dealing with outputting atom-based properties as a
|
||||
trajectory file.
|
||||
|
||||
Does not do any calculation, just manages opening a file, getting data
|
||||
from a Trajectories object and outputting with the desired stride.
|
||||
|
||||
Attributes:
|
||||
filename: The (base) name of the file to output to.
|
||||
format: The format of the trajectory file to be created.
|
||||
what: The trajectory that needs to be output.
|
||||
stride: The number of steps that should be taken between outputting the
|
||||
data to file.
|
||||
out: The output stream on which to output the trajectories.
|
||||
flush: How often we should flush to disk.
|
||||
nout: Number of steps since data was last flushed.
|
||||
ibead: Index of the replica to print the trajectory of.
|
||||
cell_units: The units that the cell parameters are given in.
|
||||
simul: The simulation object to get the data to be output from.
|
||||
"""
|
||||
|
||||
def __init__(self, filename="out", stride=1, flush=1, what="", format="xyz", cell_units="atomic_unit", ibead=-1):
|
||||
""" Initializes a property output stream opening the corresponding
|
||||
file name.
|
||||
|
||||
Also writes out headers.
|
||||
|
||||
Args:
|
||||
filename: A string giving the name of the file to be output to.
|
||||
stride: An integer giving how many steps should be taken between
|
||||
outputting the data to file.
|
||||
flush: How often we should flush to disk
|
||||
what: A string specifying what trajectory should be output.
|
||||
format: A string specifying the type of trajectory file to be created.
|
||||
cell_units: A string specifying the units that the cell parameters are
|
||||
given in.
|
||||
ibead: If positive, prints out only the selected bead. If negative, prints out one file per bead.
|
||||
"""
|
||||
|
||||
self.filename = filename
|
||||
self.what = what
|
||||
self.stride = stride
|
||||
self.flush = flush
|
||||
self.ibead = ibead
|
||||
self.format = format
|
||||
self.cell_units = cell_units
|
||||
self.out = None
|
||||
self.nout = 0
|
||||
|
||||
def bind(self, simul):
|
||||
"""Binds output proxy to simulation object.
|
||||
|
||||
Args:
|
||||
simul: A simulation object to be bound.
|
||||
"""
|
||||
|
||||
self.simul = simul
|
||||
|
||||
# Checks as soon as possible if some asked-for trajs are missing or misspelled
|
||||
key = getkey(self.what)
|
||||
if not key in self.simul.trajs.traj_dict.keys():
|
||||
print "Computable trajectories list: ", self.simul.trajs.traj_dict.keys()
|
||||
raise KeyError(key + " is not a recognized output trajectory")
|
||||
|
||||
self.open_stream()
|
||||
|
||||
def open_stream(self):
|
||||
"""Opens the output stream(s)."""
|
||||
|
||||
if getkey(self.what) in [ "positions", "velocities", "forces", "extras" ]:
|
||||
# must write out trajectories for each bead, so must create b streams
|
||||
self.out = []
|
||||
for b in range(self.simul.beads.nbeads):
|
||||
# zero-padded bead number
|
||||
padb = ( ("%0" + str(int(1 + np.floor(np.log(self.simul.beads.nbeads)/np.log(10)))) + "d") % (b) )
|
||||
try:
|
||||
if (self.ibead < 0 or self.ibead == b):
|
||||
if getkey(self.what) == "extras":
|
||||
self.out.append(open(self.filename + "_" + padb, "a"))
|
||||
else:
|
||||
self.out.append(open(self.filename + "_" + padb + "." + self.format, "a"))
|
||||
else:
|
||||
self.out.append(None) # creates null outputs if a
|
||||
# single bead output is chosen
|
||||
except:
|
||||
raise ValueError("Could not open file " + self.filename + "_" + padb + "." + self.format + " for output")
|
||||
else:
|
||||
try:
|
||||
self.out = ( open(self.filename + "." + self.format, "a") )
|
||||
except:
|
||||
raise ValueError("Could not open file " + self.filename + "." + self.format + " for output")
|
||||
|
||||
def close_stream():
|
||||
"""Closes the output stream."""
|
||||
|
||||
if hasattr(self.out, "__getitem__"):
|
||||
for o in self.out:
|
||||
o.close()
|
||||
else:
|
||||
self.out.close()
|
||||
|
||||
def write(self):
|
||||
"""Writes out the required trajectories."""
|
||||
|
||||
if not (self.simul.step + 1) % self.stride == 0:
|
||||
return
|
||||
|
||||
doflush = False
|
||||
self.nout += 1
|
||||
if self.flush > 0 and self.nout >= self.flush :
|
||||
doflush = True
|
||||
self.nout = 0
|
||||
|
||||
# quick-and-dirty way to check if a trajectory is "global" or per-bead
|
||||
# Checks to see if there is a list of files or just a single file.
|
||||
if hasattr(self.out, "__getitem__"):
|
||||
if self.ibead < 0:
|
||||
for b in range(len(self.out)):
|
||||
self.simul.trajs.print_traj(self.what, self.out[b], b, format=self.format, cell_units=self.cell_units, flush=doflush)
|
||||
elif self.ibead < len(self.out):
|
||||
self.simul.trajs.print_traj(self.what, self.out[self.ibead], self.ibead, format=self.format, cell_units=self.cell_units, flush=doflush)
|
||||
else:
|
||||
raise ValueError("Selected bead index " + str(self.ibead) + " does not exist for trajectory " + self.what)
|
||||
else:
|
||||
self.simul.trajs.print_traj(self.what, self.out, b=0, format=self.format, cell_units=self.cell_units, flush=doflush)
|
||||
|
||||
|
||||
class CheckpointOutput(dobject):
|
||||
"""Class dealing with outputting checkpoints.
|
||||
|
||||
Saves the complete status of the simulation at regular intervals.
|
||||
|
||||
Attributes:
|
||||
filename: The (base) name of the file to output to.
|
||||
step: the number of times a checkpoint has been written out.
|
||||
stride: The number of steps that should be taken between outputting the
|
||||
data to file.
|
||||
overwrite: If True, the checkpoint file is overwritten at each output.
|
||||
If False, will output to 'filename_step'. Note that no check is done
|
||||
on whether 'filename_step' exists already.
|
||||
simul: The simulation object to get the data to be output from.
|
||||
status: An input simulation object used to write out the checkpoint file.
|
||||
"""
|
||||
|
||||
|
||||
def __init__(self, filename="restart", stride=1000, overwrite=True, step=0):
|
||||
"""Initializes a checkpoint output proxy.
|
||||
|
||||
Args:
|
||||
filename: A string giving the name of the file to be output to.
|
||||
stride: An integer giving how many steps should be taken between
|
||||
outputting the data to file.
|
||||
overwrite: If True, the checkpoint file is overwritten at each output.
|
||||
If False, will output to 'filename_step'. Note that no check is done
|
||||
on whether 'filename_step' exists already.
|
||||
step: The number of checkpoint files that have been created so far.
|
||||
"""
|
||||
|
||||
self.filename = filename
|
||||
self.step = step
|
||||
self.stride = stride
|
||||
self.overwrite = overwrite
|
||||
|
||||
def bind(self, simul):
|
||||
"""Binds output proxy to simulation object.
|
||||
|
||||
Args:
|
||||
simul: A simulation object to be bound.
|
||||
"""
|
||||
|
||||
self.simul = simul
|
||||
self.status = ipi.inputs.simulation.InputSimulation()
|
||||
self.status.store(simul)
|
||||
|
||||
def store(self):
|
||||
"""Stores the current simulation status.
|
||||
|
||||
Used so that, if halfway through a step a kill signal is received,
|
||||
we can output a checkpoint file corresponding to the beginning of the
|
||||
current step, which is the last time that both the velocities and
|
||||
positions would have been consistent.
|
||||
"""
|
||||
|
||||
self.status.store(self.simul)
|
||||
|
||||
def write(self, store=True):
|
||||
"""Writes out the required trajectories.
|
||||
|
||||
Used for both the checkpoint files and the soft-exit restart file.
|
||||
We have slightly different behavior for these two different types of
|
||||
checkpoint file, as the soft-exit files have their store() function
|
||||
called automatically, and we do not want this to be updated as the
|
||||
status of the simulation after a soft-exit call is unlikely to be in
|
||||
a consistent state. On the other hand, the standard checkpoint files
|
||||
are not automatically updated in this way, and we must manually store the
|
||||
current state of the system before writing them.
|
||||
|
||||
Args:
|
||||
store: A boolean saying whether the state of the system should be
|
||||
stored before writing the checkpoint file.
|
||||
"""
|
||||
|
||||
if not (self.simul.step + 1) % self.stride == 0:
|
||||
return
|
||||
|
||||
if self.overwrite:
|
||||
filename = self.filename
|
||||
else:
|
||||
filename = self.filename + "_" + str(self.step)
|
||||
|
||||
if store:
|
||||
self.step += 1 # advances the step counter before saving, so next time the correct index will be loaded.
|
||||
self.store()
|
||||
check_file = open(filename, "w")
|
||||
check_file.write(self.status.write(name="simulation"))
|
||||
check_file.close()
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,232 +0,0 @@
|
||||
"""Contains the class that deals with the running of the simulation and
|
||||
outputting the results.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
The root class for the whole simulation. Contains references to all the top
|
||||
level objects used in the simulation, and controls all the steps that are
|
||||
not inherently system dependent, like the running of each time step,
|
||||
choosing which properties to initialize, and which properties to output.
|
||||
|
||||
Classes:
|
||||
Simulation: Deals with running the simulation and outputting the results.
|
||||
"""
|
||||
|
||||
__all__ = ['Simulation']
|
||||
|
||||
import numpy as np
|
||||
import os.path, sys, time
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils.units import *
|
||||
from ipi.utils.prng import *
|
||||
from ipi.utils.io import *
|
||||
from ipi.utils.io.io_xml import *
|
||||
from ipi.utils.messages import verbosity, info
|
||||
from ipi.utils.softexit import softexit
|
||||
from ipi.engine.atoms import *
|
||||
from ipi.engine.cell import *
|
||||
from ipi.engine.forces import Forces
|
||||
from ipi.engine.beads import Beads
|
||||
from ipi.engine.normalmodes import NormalModes
|
||||
from ipi.engine.properties import Properties, Trajectories
|
||||
from ipi.engine.outputs import CheckpointOutput
|
||||
|
||||
class Simulation(dobject):
|
||||
"""Main simulation object.
|
||||
|
||||
Contains all the references and the main dynamics loop. Also handles the
|
||||
initialization and output.
|
||||
|
||||
Attributes:
|
||||
beads: A beads object giving the atom positions.
|
||||
cell: A cell object giving the system box.
|
||||
prng: A random number generator object.
|
||||
flist: A list of forcefield objects giving different ways to partially
|
||||
calculate the forces.
|
||||
forces: A Forces object for calculating the total force for all the
|
||||
replicas.
|
||||
ensemble: An ensemble object giving the objects necessary for producing
|
||||
the correct ensemble.
|
||||
tsteps: The total number of steps.
|
||||
ttime: The wall clock time (in seconds).
|
||||
format: A string specifying both the format and the extension of traj
|
||||
output.
|
||||
outputs: A list of output objects that should be printed during the run
|
||||
nm: A helper object dealing with normal modes transformation
|
||||
properties: A property object for dealing with property output.
|
||||
trajs: A trajectory object for dealing with trajectory output.
|
||||
chk: A checkpoint object for dealing with checkpoint output.
|
||||
rollback: If set to true, the state of the simulation at the start
|
||||
of the step will be output to a restart file rather than
|
||||
the current state of the simulation. This is because we cannot
|
||||
restart from half way through a step, only from the beginning of a
|
||||
step, so this is necessary for the trajectory to be continuous.
|
||||
|
||||
Depend objects:
|
||||
step: The current simulation step.
|
||||
"""
|
||||
|
||||
def __init__(self, beads, cell, forces, ensemble, prng, outputs, nm, init, step=0, tsteps=1000, ttime=0):
|
||||
"""Initializes Simulation class.
|
||||
|
||||
Args:
|
||||
beads: A beads object giving the atom positions.
|
||||
cell: A cell object giving the system box.
|
||||
forces: A forcefield object giving the force calculator for each
|
||||
replica of the system.
|
||||
ensemble: An ensemble object giving the objects necessary for
|
||||
producing the correct ensemble.
|
||||
prng: A random number object.
|
||||
outputs: A list of output objects.
|
||||
nm: A class dealing with path NM operations.
|
||||
init: A class to deal with initializing the simulation object.
|
||||
step: An optional integer giving the current simulation time step.
|
||||
Defaults to 0.
|
||||
tsteps: An optional integer giving the total number of steps. Defaults
|
||||
to 1000.
|
||||
ttime: The simulation running time. Used on restart, to keep a
|
||||
cumulative total.
|
||||
"""
|
||||
|
||||
info(" # Initializing simulation object ", verbosity.low )
|
||||
self.prng = prng
|
||||
self.ensemble = ensemble
|
||||
self.beads = beads
|
||||
self.cell = cell
|
||||
self.nm = nm
|
||||
|
||||
# initialize the configuration of the system
|
||||
self.init = init
|
||||
init.init_stage1(self)
|
||||
|
||||
self.flist = forces
|
||||
self.forces = Forces()
|
||||
self.outputs = outputs
|
||||
|
||||
dset(self, "step", depend_value(name="step", value=step))
|
||||
self.tsteps = tsteps
|
||||
self.ttime = ttime
|
||||
|
||||
self.properties = Properties()
|
||||
self.trajs = Trajectories()
|
||||
self.chk = None
|
||||
self.rollback = True
|
||||
|
||||
def bind(self):
|
||||
"""Calls the bind routines for all the objects in the simulation."""
|
||||
|
||||
# binds important computation engines
|
||||
self.nm.bind(self.beads, self.ensemble)
|
||||
self.forces.bind(self.beads, self.cell, self.flist)
|
||||
self.ensemble.bind(self.beads, self.nm, self.cell, self.forces, self.prng)
|
||||
self.init.init_stage2(self)
|
||||
|
||||
# binds output management objects
|
||||
self.properties.bind(self)
|
||||
self.trajs.bind(self)
|
||||
for o in self.outputs:
|
||||
o.bind(self)
|
||||
|
||||
self.chk = CheckpointOutput("RESTART", 1, True, 0)
|
||||
self.chk.bind(self)
|
||||
|
||||
# registers the softexit routine
|
||||
softexit.register(self.softexit)
|
||||
|
||||
def softexit(self):
|
||||
"""Deals with a soft exit request.
|
||||
|
||||
Tries to ensure that a consistent restart checkpoint is
|
||||
written out.
|
||||
"""
|
||||
|
||||
if self.step < self.tsteps:
|
||||
self.step += 1
|
||||
if not self.rollback:
|
||||
self.chk.store()
|
||||
self.chk.write(store=False)
|
||||
|
||||
self.forces.stop()
|
||||
|
||||
def run(self):
|
||||
"""Runs the simulation.
|
||||
|
||||
Does all the simulation steps, and outputs data to the appropriate files
|
||||
when necessary. Also deals with starting and cleaning up the threads used
|
||||
in the communication between the driver and the PIMD code.
|
||||
"""
|
||||
|
||||
self.forces.run()
|
||||
|
||||
# prints initial configuration -- only if we are not restarting
|
||||
if (self.step == 0):
|
||||
self.step = -1
|
||||
for o in self.outputs:
|
||||
o.write()
|
||||
self.step = 0
|
||||
|
||||
steptime = 0.0
|
||||
simtime = time.time()
|
||||
|
||||
cstep = 0
|
||||
tptime = 0.0
|
||||
tqtime = 0.0
|
||||
tttime = 0.0
|
||||
ttot = 0.0
|
||||
# main MD loop
|
||||
for self.step in range(self.step,self.tsteps):
|
||||
# stores the state before doing a step.
|
||||
# this is a bit time-consuming but makes sure that we can honor soft
|
||||
# exit requests without screwing the trajectory
|
||||
|
||||
steptime = -time.time()
|
||||
self.chk.store()
|
||||
|
||||
self.ensemble.step()
|
||||
|
||||
for o in self.outputs:
|
||||
o.write()
|
||||
|
||||
if os.path.exists("EXIT"): # soft-exit
|
||||
self.rollback = False
|
||||
softexit.trigger()
|
||||
|
||||
steptime += time.time()
|
||||
ttot += steptime
|
||||
tptime += self.ensemble.ptime
|
||||
tqtime += self.ensemble.qtime
|
||||
tttime += self.ensemble.ttime
|
||||
cstep += 1
|
||||
|
||||
if verbosity.high or (verbosity.medium and self.step%100 == 0) or (verbosity.low and self.step%1000 == 0):
|
||||
info(" # Average timings at MD step % 7d. t/step: %10.5e [p: %10.5e q: %10.5e t: %10.5e]" %
|
||||
( self.step, ttot/cstep, tptime/cstep, tqtime/cstep, tttime/cstep ) )
|
||||
cstep = 0
|
||||
tptime = 0.0
|
||||
tqtime = 0.0
|
||||
tttime = 0.0
|
||||
ttot = 0.0
|
||||
info(" # MD diagnostics: V: %10.5e Kcv: %10.5e Ecns: %10.5e" %
|
||||
(self.properties["potential"], self.properties["kinetic_cv"], self.properties["conserved"] ) )
|
||||
|
||||
if (self.ttime > 0 and time.time() - simtime > self.ttime):
|
||||
info(" # Wall clock time expired! Bye bye!", verbosity.low )
|
||||
break
|
||||
|
||||
info(" # Simulation ran successfully for the prescribed total_step! Bye bye!", verbosity.low )
|
||||
self.rollback = False
|
||||
softexit.trigger()
|
||||
@ -1,884 +0,0 @@
|
||||
"""Contains the classes that deal with constant temperature dynamics.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Contains the algorithms which propagate the thermostatting steps in the constant
|
||||
temperature ensembles. Includes the new GLE thermostat, which can be used to
|
||||
run PI+GLE dynamics, reducing the number of path integral beads required.
|
||||
|
||||
Classes:
|
||||
Thermostat: Base thermostat class with the generic methods and attributes.
|
||||
ThermoLangevin: Holds the algorithms for a langevin thermostat.
|
||||
ThermoPILE_L: Holds the algorithms for a path-integral langevin equation
|
||||
thermostat, with a thermostat coupled directly to the
|
||||
centroid coordinate of each bead.
|
||||
ThermoPILE_G: Holds the algorithms for a path-integral langevin equation
|
||||
thermostat, with a thermostat coupled to the kinetic energy for
|
||||
the entire system.
|
||||
ThermoSVR: Holds the algorithms for a stochastic velocity rescaling
|
||||
thermostat.
|
||||
ThermoGLE: Holds the algorithms for a generalized langevin equation
|
||||
thermostat.
|
||||
ThermoNMGLE: Holds the algorithms for a generalized langevin equation
|
||||
thermostat in the normal mode representation.
|
||||
ThermoNMGLEG: Holds the algorithms for a generalized langevin equation
|
||||
thermostat in the normal mode representation, with kinetic energy as
|
||||
well as potential energy sampling optimization.
|
||||
"""
|
||||
|
||||
__all__ = ['Thermostat', 'ThermoLangevin', 'ThermoPILE_L', 'ThermoPILE_G',
|
||||
'ThermoSVR', 'ThermoGLE', 'ThermoNMGLE', 'ThermoNMGLEG']
|
||||
|
||||
import numpy as np
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils.units import *
|
||||
from ipi.utils.mathtools import matrix_exp, stab_cholesky, root_herm
|
||||
from ipi.utils.prng import Random
|
||||
from ipi.utils.messages import verbosity, warning, info
|
||||
from ipi.engine.beads import Beads
|
||||
from ipi.engine.normalmodes import NormalModes
|
||||
|
||||
class Thermostat(dobject):
|
||||
"""Base thermostat class.
|
||||
|
||||
Gives the standard methods and attributes needed in all the thermostat
|
||||
classes.
|
||||
|
||||
Attributes:
|
||||
prng: A pseudo random number generator object.
|
||||
ndof: The number of degrees of freedom that the thermostat will be
|
||||
attached to.
|
||||
|
||||
Depend objects:
|
||||
dt: The time step used in the algorithms. Depends on the simulation dt.
|
||||
temp: The simulation temperature. Higher than the system temperature by
|
||||
a factor of the number of beads. Depends on the simulation temp.
|
||||
ethermo: The total energy exchanged with the bath due to the thermostat.
|
||||
p: The momentum vector that the thermostat is coupled to. Depends on the
|
||||
beads p object.
|
||||
m: The mass vector associated with p. Depends on the beads m object.
|
||||
sm: The square root of the mass vector.
|
||||
"""
|
||||
|
||||
def __init__(self, temp = 1.0, dt = 1.0, ethermo=0.0):
|
||||
"""Initializes Thermostat.
|
||||
|
||||
Args:
|
||||
temp: The simulation temperature. Defaults to 1.0.
|
||||
dt: The simulation time step. Defaults to 1.0.
|
||||
ethermo: The initial heat energy transferred to the bath.
|
||||
Defaults to 0.0. Will be non-zero if the thermostat is
|
||||
initialized from a checkpoint file.
|
||||
"""
|
||||
|
||||
dset(self,"temp", depend_value(name='temp', value=temp))
|
||||
dset(self,"dt", depend_value(name='dt', value=dt))
|
||||
dset(self,"ethermo",depend_value(name='ethermo',value=ethermo))
|
||||
|
||||
def bind(self, beads=None, atoms=None, pm=None, prng=None, fixdof=None):
|
||||
"""Binds the appropriate degrees of freedom to the thermostat.
|
||||
|
||||
This takes an object with degrees of freedom, and makes their momentum
|
||||
and mass vectors members of the thermostat. It also then creates the
|
||||
objects that will hold the data needed in the thermostat algorithms
|
||||
and the dependency network.
|
||||
|
||||
Args:
|
||||
beads: An optional beads object to take the mass and momentum vectors
|
||||
from.
|
||||
atoms: An optional atoms object to take the mass and momentum vectors
|
||||
from.
|
||||
pm: An optional tuple containing a single momentum value and its
|
||||
conjugate mass.
|
||||
prng: An optional pseudo random number generator object. Defaults to
|
||||
Random().
|
||||
fixdof: An optional integer which can specify the number of constraints
|
||||
applied to the system. Defaults to zero.
|
||||
|
||||
Raises:
|
||||
TypeError: Raised if no appropriate degree of freedom or object
|
||||
containing a momentum vector is specified for
|
||||
the thermostat to couple to.
|
||||
"""
|
||||
|
||||
if prng is None:
|
||||
warning("Initializing thermostat from standard random PRNG", verbosity.medium)
|
||||
self.prng = Random()
|
||||
else:
|
||||
self.prng = prng
|
||||
|
||||
if not beads is None:
|
||||
dset(self,"p",beads.p.flatten())
|
||||
dset(self,"m",beads.m3.flatten())
|
||||
elif not atoms is None:
|
||||
dset(self,"p",dget(atoms, "p"))
|
||||
dset(self,"m",dget(atoms, "m3"))
|
||||
elif not pm is None:
|
||||
dset(self,"p",pm[0])
|
||||
dset(self,"m",pm[1])
|
||||
else:
|
||||
raise TypeError("Thermostat.bind expects either Beads, Atoms, NormalModes, or a (p,m) tuple to bind to")
|
||||
|
||||
if fixdof is None:
|
||||
self.ndof = len(self.p)
|
||||
else:
|
||||
self.ndof = float(len(self.p) - fixdof)
|
||||
|
||||
dset(self, "sm",
|
||||
depend_array(name="sm", value=np.zeros(len(dget(self,"m"))),
|
||||
func=self.get_sm, dependencies=[dget(self,"m")]))
|
||||
|
||||
def get_sm(self):
|
||||
"""Retrieves the square root of the mass matrix.
|
||||
|
||||
Returns:
|
||||
A vector of the square root of the mass matrix with one value for
|
||||
each degree of freedom.
|
||||
"""
|
||||
|
||||
return np.sqrt(self.m)
|
||||
|
||||
def step(self):
|
||||
"""Dummy thermostat step."""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class ThermoLangevin(Thermostat):
|
||||
"""Represents a langevin thermostat.
|
||||
|
||||
Depend objects:
|
||||
tau: Thermostat damping time scale. Larger values give a less strongly
|
||||
coupled thermostat.
|
||||
T: Coefficient of the diffusive contribution of the thermostat, i.e. the
|
||||
drift back towards equilibrium. Depends on tau and the time step.
|
||||
S: Coefficient of the stochastic contribution of the thermostat, i.e.
|
||||
the uncorrelated Gaussian noise. Depends on T and the temperature.
|
||||
"""
|
||||
|
||||
def get_T(self):
|
||||
"""Calculates the coefficient of the overall drift of the velocities."""
|
||||
|
||||
return np.exp(-0.5*self.dt/self.tau)
|
||||
|
||||
def get_S(self):
|
||||
"""Calculates the coefficient of the white noise."""
|
||||
|
||||
return np.sqrt(Constants.kb*self.temp*(1 - self.T**2))
|
||||
|
||||
def __init__(self, temp = 1.0, dt = 1.0, tau = 1.0, ethermo=0.0):
|
||||
"""Initializes ThermoLangevin.
|
||||
|
||||
Args:
|
||||
temp: The simulation temperature. Defaults to 1.0.
|
||||
dt: The simulation time step. Defaults to 1.0.
|
||||
tau: The thermostat damping timescale. Defaults to 1.0.
|
||||
ethermo: The initial heat energy transferred to the bath.
|
||||
Defaults to 0.0. Will be non-zero if the thermostat is
|
||||
initialized from a checkpoint file.
|
||||
"""
|
||||
|
||||
super(ThermoLangevin,self).__init__(temp, dt, ethermo)
|
||||
|
||||
dset(self,"tau",depend_value(value=tau,name='tau'))
|
||||
dset(self,"T",
|
||||
depend_value(name="T",func=self.get_T,
|
||||
dependencies=[dget(self,"tau"), dget(self,"dt")]))
|
||||
dset(self,"S",
|
||||
depend_value(name="S",func=self.get_S,
|
||||
dependencies=[dget(self,"temp"), dget(self,"T")]))
|
||||
|
||||
def step(self):
|
||||
"""Updates the bound momentum vector with a langevin thermostat."""
|
||||
|
||||
p = depstrip(self.p).copy()
|
||||
sm = depstrip(self.sm)
|
||||
|
||||
p /= sm
|
||||
|
||||
self.ethermo += np.dot(p,p)*0.5
|
||||
p *= self.T
|
||||
p += self.S*self.prng.gvec(len(p))
|
||||
self.ethermo -= np.dot(p,p)*0.5
|
||||
|
||||
p *= sm
|
||||
|
||||
self.p = p
|
||||
|
||||
|
||||
class ThermoPILE_L(Thermostat):
|
||||
"""Represents a PILE thermostat with a local centroid thermostat.
|
||||
|
||||
Attributes:
|
||||
_thermos: The list of the different thermostats for all the ring polymer
|
||||
normal modes.
|
||||
nm: A normal modes object to attach the thermostat to.
|
||||
prng: Random number generator used in the stochastic integration
|
||||
algorithms.
|
||||
|
||||
Depend objects:
|
||||
tau: Centroid thermostat damping time scale. Larger values give a
|
||||
less strongly coupled centroid thermostat.
|
||||
tauk: Thermostat damping time scale for the non-centroid normal modes.
|
||||
Depends on the ring polymer spring constant, and thus the simulation
|
||||
temperature.
|
||||
pilescale: A float used to reduce the intensity of the PILE thermostat if
|
||||
required.
|
||||
"""
|
||||
|
||||
def __init__(self, temp = 1.0, dt = 1.0, tau = 1.0, ethermo=0.0, scale=1.0):
|
||||
"""Initializes ThermoPILE_L.
|
||||
|
||||
Args:
|
||||
temp: The simulation temperature. Defaults to 1.0.
|
||||
dt: The simulation time step. Defaults to 1.0.
|
||||
tau: The centroid thermostat damping timescale. Defaults to 1.0.
|
||||
ethermo: The initial conserved energy quantity. Defaults to 0.0. Will
|
||||
be non-zero if the thermostat is initialized from a checkpoint file.
|
||||
scale: A float used to reduce the intensity of the PILE thermostat if
|
||||
required.
|
||||
|
||||
Raises:
|
||||
TypeError: Raised if the thermostat is used with any object other than
|
||||
a beads object, so that we make sure that the objects needed for the
|
||||
normal mode transformation exist.
|
||||
"""
|
||||
|
||||
super(ThermoPILE_L,self).__init__(temp,dt,ethermo)
|
||||
dset(self,"tau",depend_value(value=tau,name='tau'))
|
||||
dset(self,"pilescale",depend_value(value=scale,name='pilescale'))
|
||||
|
||||
def bind(self, nm=None, prng=None, bindcentroid=True, fixdof=None):
|
||||
"""Binds the appropriate degrees of freedom to the thermostat.
|
||||
|
||||
This takes a beads object with degrees of freedom, and makes its momentum
|
||||
and mass vectors members of the thermostat. It also then creates the
|
||||
objects that will hold the data needed in the thermostat algorithms
|
||||
and the dependency network.
|
||||
|
||||
Gives the interface for both the PILE_L and PILE_G thermostats, which
|
||||
only differ in their treatment of the centroid coordinate momenta.
|
||||
|
||||
Args:
|
||||
nm: An optional normal mode object to take the mass and momentum
|
||||
vectors from.
|
||||
prng: An optional pseudo random number generator object. Defaults to
|
||||
Random().
|
||||
bindcentroid: An optional boolean which decides whether a Langevin
|
||||
thermostat is attached to the centroid mode of each atom
|
||||
separately, or the total kinetic energy. Defaults to True, which
|
||||
gives a thermostat bound to each centroid momentum.
|
||||
fixdof: An optional integer which can specify the number of constraints
|
||||
applied to the system. Defaults to zero.
|
||||
|
||||
Raises:
|
||||
TypeError: Raised if no appropriate degree of freedom or object
|
||||
containing a momentum vector is specified for
|
||||
the thermostat to couple to.
|
||||
"""
|
||||
|
||||
if nm is None or not type(nm) is NormalModes:
|
||||
raise TypeError("ThermoPILE_L.bind expects a NormalModes argument to bind to")
|
||||
if prng is None:
|
||||
self.prng = Random()
|
||||
else:
|
||||
self.prng = prng
|
||||
|
||||
prev_ethermo = self.ethermo
|
||||
|
||||
# creates a set of thermostats to be applied to individual normal modes
|
||||
self._thermos = [ ThermoLangevin(temp=1, dt=1, tau=1) for b in range(nm.nbeads) ]
|
||||
# optionally does not bind the centroid, so we can re-use all of this
|
||||
# in the PILE_G case
|
||||
if not bindcentroid:
|
||||
self._thermos[0] = None
|
||||
|
||||
self.nm = nm
|
||||
|
||||
dset(self,"tauk",
|
||||
depend_array(name="tauk", value=np.zeros(nm.nbeads-1,float),
|
||||
func=self.get_tauk, dependencies=[dget(self,"pilescale"), dget(nm,"dynomegak")] ) )
|
||||
|
||||
# must pipe all the dependencies in such a way that values for the nm thermostats
|
||||
# are automatically updated based on the "master" thermostat
|
||||
def make_taugetter(k):
|
||||
return lambda: self.tauk[k-1]
|
||||
it = 0
|
||||
for t in self._thermos:
|
||||
if t is None:
|
||||
it += 1
|
||||
continue
|
||||
if it > 0:
|
||||
fixdof = None # only the centroid thermostat may have constraints
|
||||
|
||||
# bind thermostat t to the it-th bead
|
||||
t.bind(pm=(nm.pnm[it,:],nm.dynm3[it,:]),prng=self.prng, fixdof=fixdof)
|
||||
# pipes temp and dt
|
||||
deppipe(self,"temp", t, "temp")
|
||||
deppipe(self,"dt", t, "dt")
|
||||
|
||||
# for tau it is slightly more complex
|
||||
if it == 0:
|
||||
deppipe(self,"tau", t, "tau")
|
||||
else:
|
||||
# Here we manually connect _thermos[i].tau to tauk[i].
|
||||
# Simple and clear.
|
||||
dget(t,"tau").add_dependency(dget(self,"tauk"))
|
||||
dget(t,"tau")._func = make_taugetter(it)
|
||||
dget(self,"ethermo").add_dependency(dget(t,"ethermo"))
|
||||
it += 1
|
||||
|
||||
# since the ethermo will be "delegated" to the normal modes thermostats,
|
||||
# one has to split
|
||||
# any previously-stored value between the sub-thermostats
|
||||
if bindcentroid:
|
||||
for t in self._thermos:
|
||||
t.ethermo = prev_ethermo/nm.nbeads
|
||||
dget(self,"ethermo")._func = self.get_ethermo;
|
||||
# if we are not binding the centroid just yet, this bit of the piping
|
||||
# is delegated to the function which is actually calling this
|
||||
|
||||
def get_tauk(self):
|
||||
"""Computes the thermostat damping time scale for the non-centroid
|
||||
normal modes.
|
||||
|
||||
Returns:
|
||||
An array with the damping time scales for the non-centroid modes.
|
||||
"""
|
||||
|
||||
# Also include an optional scaling factor to reduce the intensity of NM thermostats
|
||||
return np.array([ self.pilescale/(2*self.nm.dynomegak[k]) for k in range(1,len(self._thermos)) ])
|
||||
|
||||
def get_ethermo(self):
|
||||
"""Computes the total energy transferred to the heat bath for all the
|
||||
thermostats.
|
||||
"""
|
||||
|
||||
et = 0.0;
|
||||
for t in self._thermos:
|
||||
et += t.ethermo
|
||||
return et
|
||||
|
||||
def step(self):
|
||||
"""Updates the bound momentum vector with a PILE thermostat."""
|
||||
|
||||
# super-cool! just loop over the thermostats! it's as easy as that!
|
||||
for t in self._thermos:
|
||||
t.step()
|
||||
|
||||
|
||||
class ThermoSVR(Thermostat):
|
||||
"""Represents a stochastic velocity rescaling thermostat.
|
||||
|
||||
Depend objects:
|
||||
tau: Centroid thermostat damping time scale. Larger values give a
|
||||
less strongly coupled centroid thermostat.
|
||||
K: Scaling factor for the total kinetic energy. Depends on the
|
||||
temperature.
|
||||
et: Parameter determining the strength of the thermostat coupling.
|
||||
Depends on tau and the time step.
|
||||
"""
|
||||
|
||||
def get_et(self):
|
||||
"""Calculates the damping term in the propagator."""
|
||||
|
||||
return np.exp(-0.5*self.dt/self.tau)
|
||||
|
||||
def get_K(self):
|
||||
"""Calculates the average kinetic energy per degree of freedom."""
|
||||
|
||||
return Constants.kb*self.temp*0.5
|
||||
|
||||
def __init__(self, temp = 1.0, dt = 1.0, tau = 1.0, ethermo=0.0):
|
||||
"""Initializes ThermoSVR.
|
||||
|
||||
Args:
|
||||
temp: The simulation temperature. Defaults to 1.0.
|
||||
dt: The simulation time step. Defaults to 1.0.
|
||||
tau: The thermostat damping timescale. Defaults to 1.0.
|
||||
ethermo: The initial conserved energy quantity. Defaults to 0.0. Will
|
||||
be non-zero if the thermostat is initialized from a checkpoint file.
|
||||
"""
|
||||
|
||||
super(ThermoSVR,self).__init__(temp,dt,ethermo)
|
||||
|
||||
dset(self,"tau",depend_value(value=tau,name='tau'))
|
||||
dset(self,"et",
|
||||
depend_value(name="et",func=self.get_et,
|
||||
dependencies=[dget(self,"tau"), dget(self,"dt")]))
|
||||
dset(self,"K",
|
||||
depend_value(name="K",func=self.get_K, dependencies=[dget(self,"temp")]))
|
||||
|
||||
def step(self):
|
||||
"""Updates the bound momentum vector with a stochastic velocity rescaling
|
||||
thermostat. See G Bussi, D Donadio, M Parrinello,
|
||||
Journal of Chemical Physics 126, 014101 (2007)
|
||||
"""
|
||||
|
||||
K = np.dot(depstrip(self.p),depstrip(self.p)/depstrip(self.m))*0.5
|
||||
|
||||
# rescaling is un-defined if the KE is zero
|
||||
if K == 0.0:
|
||||
return
|
||||
|
||||
# gets the stochastic term (basically a Gamma distribution for the kinetic energy)
|
||||
r1 = self.prng.g
|
||||
if (self.ndof-1)%2 == 0:
|
||||
rg = 2.0*self.prng.gamma((self.ndof-1)/2)
|
||||
else:
|
||||
rg = 2.0*self.prng.gamma((self.ndof-2)/2) + self.prng.g**2
|
||||
|
||||
alpha2 = self.et + self.K/K*(1 - self.et)*(r1**2 + rg) + 2.0*r1*np.sqrt(self.K/K*self.et*(1 - self.et))
|
||||
alpha = np.sqrt(alpha2)
|
||||
if (r1 + np.sqrt(2*K/self.K*self.et/(1 - self.et))) < 0:
|
||||
alpha *= -1
|
||||
|
||||
self.ethermo += K*(1 - alpha2)
|
||||
self.p *= alpha
|
||||
|
||||
|
||||
class ThermoPILE_G(ThermoPILE_L):
|
||||
"""Represents a PILE thermostat with a global centroid thermostat.
|
||||
|
||||
Simply replaces the Langevin thermostat for the centroid normal mode with
|
||||
a global velocity rescaling thermostat.
|
||||
"""
|
||||
|
||||
def __init__(self, temp = 1.0, dt = 1.0, tau = 1.0, ethermo=0.0, scale = 1.0):
|
||||
"""Initializes ThermoPILE_G.
|
||||
|
||||
Args:
|
||||
temp: The simulation temperature. Defaults to 1.0.
|
||||
dt: The simulation time step. Defaults to 1.0.
|
||||
tau: The centroid thermostat damping timescale. Defaults to 1.0.
|
||||
ethermo: The initial conserved energy quantity. Defaults to 0.0. Will
|
||||
be non-zero if the thermostat is initialized from a checkpoint file.
|
||||
scale: A float used to reduce the intensity of the PILE thermostat if
|
||||
required.
|
||||
"""
|
||||
|
||||
super(ThermoPILE_G,self).__init__(temp,dt,tau,ethermo)
|
||||
dset(self,"pilescale",depend_value(value=scale,name='pilescale'))
|
||||
|
||||
def bind(self, nm=None, prng=None, fixdof=None):
|
||||
"""Binds the appropriate degrees of freedom to the thermostat.
|
||||
|
||||
This takes a beads object with degrees of freedom, and makes its momentum
|
||||
and mass vectors members of the thermostat. It also then creates the
|
||||
objects that will hold the data needed in the thermostat algorithms
|
||||
and the dependency network.
|
||||
|
||||
Uses the PILE_L bind interface, with bindcentroid set to false so we can
|
||||
specify that thermostat separately, by binding a global
|
||||
thermostat to the centroid mode.
|
||||
|
||||
Args:
|
||||
beads: An optional beads object to take the mass and momentum vectors
|
||||
from.
|
||||
prng: An optional pseudo random number generator object. Defaults to
|
||||
Random().
|
||||
fixdof: An optional integer which can specify the number of constraints
|
||||
applied to the system. Defaults to zero.
|
||||
|
||||
"""
|
||||
|
||||
# first binds as a local PILE, then substitutes the thermostat on the centroid
|
||||
prev_ethermo = self.ethermo
|
||||
super(ThermoPILE_G,self).bind(nm=nm,prng=prng,bindcentroid=False, fixdof=fixdof)
|
||||
|
||||
#centroid thermostat
|
||||
self._thermos[0] = ThermoSVR(temp=1, dt=1, tau=1)
|
||||
|
||||
t = self._thermos[0]
|
||||
t.bind(pm=(nm.pnm[0,:],nm.dynm3[0,:]),prng=self.prng, fixdof=fixdof)
|
||||
deppipe(self,"temp", t, "temp")
|
||||
deppipe(self,"dt", t, "dt")
|
||||
deppipe(self,"tau", t, "tau")
|
||||
dget(self,"ethermo").add_dependency(dget(t,"ethermo"))
|
||||
|
||||
# splits any previous ethermo between the thermostats, and finishes to bind ethermo to the sum function
|
||||
for t in self._thermos:
|
||||
t.ethermo = prev_ethermo/nm.nbeads
|
||||
dget(self,"ethermo")._func = self.get_ethermo;
|
||||
|
||||
|
||||
class ThermoGLE(Thermostat):
|
||||
"""Represents a GLE thermostat.
|
||||
|
||||
This is similar to a langevin thermostat, in that it uses Gaussian random
|
||||
numbers to simulate a heat bath acting on the system, but simulates a
|
||||
non-Markovian system by using a Markovian formulation in an extended phase
|
||||
space. This allows for a much greater degree of flexibility, and this
|
||||
thermostat, properly fitted, can give the an approximation to the correct
|
||||
quantum ensemble even for a classical, 1-bead simulation. More reasonably,
|
||||
using this thermostat allows for a far smaller number of replicas of the
|
||||
system to be used, as the convergence of the properties
|
||||
of the system is accelerated with respect to number of beads when PI+GLE
|
||||
are used in combination. (See M. Ceriotti, D. E. Manolopoulos, M. Parinello,
|
||||
J. Chem. Phys. 134, 084104 (2011)).
|
||||
|
||||
Attributes:
|
||||
ns: The number of auxiliary degrees of freedom.
|
||||
s: An array holding all the momenta, including the ones for the
|
||||
auxiliary degrees of freedom.
|
||||
|
||||
Depend objects:
|
||||
A: Drift matrix giving the damping time scales for all the different
|
||||
degrees of freedom.
|
||||
C: Static covariance matrix.
|
||||
Satisfies A.C + C.transpose(A) = B.transpose(B), where B is the
|
||||
diffusion matrix, giving the strength of the coupling of the system
|
||||
with the heat bath, and thus the size of the stochastic
|
||||
contribution of the thermostat.
|
||||
T: Matrix for the diffusive contribution of the thermostat, i.e. the
|
||||
drift back towards equilibrium. Depends on A and the time step.
|
||||
S: Matrix for the stochastic contribution of the thermostat, i.e.
|
||||
the uncorrelated Gaussian noise. Depends on C and T.
|
||||
"""
|
||||
|
||||
def get_T(self):
|
||||
"""Calculates the matrix for the overall drift of the velocities."""
|
||||
|
||||
return matrix_exp(-0.5*self.dt*self.A)
|
||||
|
||||
def get_S(self):
|
||||
"""Calculates the matrix for the colored noise."""
|
||||
|
||||
SST = Constants.kb*(self.C - np.dot(self.T,np.dot(self.C,self.T.T)))
|
||||
|
||||
# Uses a symmetric decomposition rather than Cholesky, since it is more stable
|
||||
return root_herm(SST)
|
||||
|
||||
def get_C(self):
|
||||
"""Calculates C from temp (if C is not set explicitly)"""
|
||||
|
||||
rC = np.identity(self.ns + 1,float)*self.temp
|
||||
return rC[:]
|
||||
|
||||
def __init__(self, temp = 1.0, dt = 1.0, A = None, C = None, ethermo=0.0):
|
||||
"""Initializes ThermoGLE.
|
||||
|
||||
Args:
|
||||
temp: The simulation temperature. Defaults to 1.0.
|
||||
dt: The simulation time step. Defaults to 1.0.
|
||||
A: An optional matrix giving the drift matrix. Defaults to a single
|
||||
value of 1.0.
|
||||
C: An optional matrix giving the covariance matrix. Defaults to an
|
||||
identity matrix times temperature with the same dimensions as the
|
||||
total number of degrees of freedom in the system.
|
||||
ethermo: The initial heat energy transferred to the bath.
|
||||
Defaults to 0.0. Will be non-zero if the thermostat is
|
||||
initialized from a checkpoint file.
|
||||
"""
|
||||
|
||||
super(ThermoGLE,self).__init__(temp,dt,ethermo)
|
||||
|
||||
if A is None:
|
||||
A = np.identity(1,float)
|
||||
dset(self,"A",depend_value(value=A.copy(),name='A'))
|
||||
|
||||
self.ns = len(self.A) - 1;
|
||||
|
||||
# now, this is tricky. if C is taken from temp, then we want it to be updated
|
||||
# as a depend of temp. Otherwise, we want it to be an independent beast.
|
||||
if C is None:
|
||||
C = np.identity(self.ns+1,float)*self.temp
|
||||
dset(self,"C",
|
||||
depend_value(name='C', func=self.get_C,
|
||||
dependencies=[dget(self,"temp")]))
|
||||
else:
|
||||
dset(self,"C",depend_value(value=C.copy(),name='C'))
|
||||
|
||||
dset(self,"T",
|
||||
depend_value(name="T",func=self.get_T,
|
||||
dependencies=[dget(self,"A"), dget(self,"dt")]))
|
||||
dset(self,"S",
|
||||
depend_value(name="S",func=self.get_S,
|
||||
dependencies=[dget(self,"C"), dget(self,"T")]))
|
||||
|
||||
self.s = np.zeros(0)
|
||||
|
||||
def bind(self, beads=None, atoms=None, pm=None, prng=None, fixdof=None):
|
||||
"""Binds the appropriate degrees of freedom to the thermostat.
|
||||
|
||||
This takes an object with degrees of freedom, and makes their momentum
|
||||
and mass vectors members of the thermostat. It also then creates the
|
||||
objects that will hold the data needed in the thermostat algorithms
|
||||
and the dependency network.
|
||||
|
||||
Args:
|
||||
beads: An optional beads object to take the mass and momentum vectors
|
||||
from.
|
||||
atoms: An optional atoms object to take the mass and momentum vectors
|
||||
from.
|
||||
pm: An optional tuple containing a single momentum value and its
|
||||
conjugate mass.
|
||||
prng: An optional pseudo random number generator object. Defaults to
|
||||
Random().
|
||||
fixdof: An optional integer which can specify the number of constraints
|
||||
applied to the system. Defaults to zero.
|
||||
|
||||
Raises:
|
||||
TypeError: Raised if no appropriate degree of freedom or object
|
||||
containing a momentum vector is specified for
|
||||
the thermostat to couple to.
|
||||
"""
|
||||
|
||||
super(ThermoGLE,self).bind(beads,atoms,pm,prng,fixdof)
|
||||
|
||||
# allocates, initializes or restarts an array of s's
|
||||
if self.s.shape != (self.ns + 1, len(dget(self,"m"))):
|
||||
if len(self.s) > 0:
|
||||
warning("Mismatch in GLE s array size on restart, will reinitialize to free particle.", verbosity.low)
|
||||
self.s = np.zeros((self.ns + 1, len(dget(self,"m"))))
|
||||
|
||||
# Initializes the s vector in the free-particle limit
|
||||
info(" GLE additional DOFs initialized to the free-particle limit.", verbosity.low)
|
||||
SC = stab_cholesky(self.C*Constants.kb)
|
||||
self.s[:] = np.dot(SC, self.prng.gvec(self.s.shape))
|
||||
else:
|
||||
info("GLE additional DOFs initialized from input.", verbosity.medium)
|
||||
|
||||
def step(self):
|
||||
"""Updates the bound momentum vector with a GLE thermostat"""
|
||||
|
||||
p = depstrip(self.p).copy()
|
||||
|
||||
self.s[0,:] = self.p/self.sm
|
||||
|
||||
self.ethermo += np.dot(self.s[0],self.s[0])*0.5
|
||||
self.s[:] = np.dot(self.T,self.s) + np.dot(self.S,self.prng.gvec(self.s.shape))
|
||||
self.ethermo -= np.dot(self.s[0],self.s[0])*0.5
|
||||
|
||||
self.p = self.s[0]*self.sm
|
||||
|
||||
|
||||
class ThermoNMGLE(Thermostat):
|
||||
"""Represents a 'normal-modes' GLE thermostat.
|
||||
|
||||
An extension to the GLE thermostat which is applied in the
|
||||
normal modes representation, and which allows to use a different
|
||||
GLE for each normal mode
|
||||
|
||||
Attributes:
|
||||
ns: The number of auxiliary degrees of freedom.
|
||||
nb: The number of beads.
|
||||
s: An array holding all the momenta, including the ones for the
|
||||
auxiliary degrees of freedom.
|
||||
|
||||
Depend objects:
|
||||
A: Drift matrix giving the damping time scales for all the different
|
||||
degrees of freedom (must contain nb terms).
|
||||
C: Static covariance matrix.
|
||||
Satisfies A.C + C.transpose(A) = B.transpose(B), where B is the
|
||||
diffusion matrix, giving the strength of the coupling of the system
|
||||
with the heat bath, and thus the size of the stochastic
|
||||
contribution of the thermostat.
|
||||
"""
|
||||
|
||||
def get_C(self):
|
||||
"""Calculates C from temp (if C is not set explicitly)."""
|
||||
|
||||
rv = np.ndarray((self.nb, self.ns+1, self.ns+1), float)
|
||||
for b in range(0,self.nb):
|
||||
rv[b] = np.identity(self.ns + 1,float)*self.temp
|
||||
return rv[:]
|
||||
|
||||
def __init__(self, temp = 1.0, dt = 1.0, A = None, C = None, ethermo=0.0):
|
||||
"""Initializes ThermoGLE.
|
||||
|
||||
Args:
|
||||
temp: The simulation temperature. Defaults to 1.0.
|
||||
dt: The simulation time step. Defaults to 1.0.
|
||||
A: An optional matrix giving the drift matrix. Defaults to a single
|
||||
value of 1.0.
|
||||
C: An optional matrix giving the covariance matrix. Defaults to an
|
||||
identity matrix times temperature with the same dimensions as the
|
||||
total number of degrees of freedom in the system.
|
||||
ethermo: The initial heat energy transferred to the bath.
|
||||
Defaults to 0.0. Will be non-zero if the thermostat is
|
||||
initialized from a checkpoint file.
|
||||
"""
|
||||
|
||||
super(ThermoNMGLE,self).__init__(temp,dt,ethermo)
|
||||
|
||||
if A is None:
|
||||
A = np.identity(1,float)
|
||||
dset(self,"A",depend_value(value=A.copy(),name='A'))
|
||||
|
||||
self.nb = len(self.A)
|
||||
self.ns = len(self.A[0]) - 1;
|
||||
|
||||
# now, this is tricky. if C is taken from temp, then we want it to be
|
||||
# updated as a depend of temp.
|
||||
# Otherwise, we want it to be an independent beast.
|
||||
if C is None:
|
||||
dset(self,"C",depend_value(name='C', func=self.get_C, dependencies=[dget(self,"temp")]))
|
||||
else:
|
||||
dset(self,"C",depend_value(value=C.copy(),name='C'))
|
||||
|
||||
def bind(self, nm=None, prng=None, fixdof=None):
|
||||
"""Binds the appropriate degrees of freedom to the thermostat.
|
||||
|
||||
This takes an object with degrees of freedom, and makes their momentum
|
||||
and mass vectors members of the thermostat. It also then creates the
|
||||
objects that will hold the data needed in the thermostat algorithms
|
||||
and the dependency network. Actually, this specific thermostat requires
|
||||
being called on a beads object.
|
||||
|
||||
Args:
|
||||
nm: An optional normal modes object to take the mass and momentum
|
||||
vectors from.
|
||||
prng: An optional pseudo random number generator object. Defaults to
|
||||
Random().
|
||||
fixdof: An optional integer which can specify the number of constraints
|
||||
applied to the system. Defaults to zero.
|
||||
|
||||
Raises:
|
||||
TypeError: Raised if no beads object is specified for
|
||||
the thermostat to couple to.
|
||||
"""
|
||||
|
||||
if nm is None or not type(nm) is NormalModes:
|
||||
raise TypeError("ThermoNMGLE.bind expects a NormalModes argument to bind to")
|
||||
|
||||
if prng is None:
|
||||
self.prng = Random()
|
||||
else:
|
||||
self.prng = prng
|
||||
|
||||
if (nm.nbeads != self.nb):
|
||||
raise IndexError("The parameters in nm_gle options correspond to a bead number "+str(self.nb)+ " which does not match the number of beads in the path" + str(nm.nbeads) )
|
||||
|
||||
# allocates, initializes or restarts an array of s's
|
||||
if self.s.shape != (self.nb, self.ns + 1, nm.natoms *3) :
|
||||
if len(self.s) > 0:
|
||||
warning("Mismatch in GLE s array size on restart, will reinitialize to free particle.", verbosity.low)
|
||||
self.s = np.zeros((self.nb, self.ns + 1, nm.natoms*3))
|
||||
|
||||
# Initializes the s vector in the free-particle limit
|
||||
info(" GLE additional DOFs initialized to the free-particle limit.", verbosity.low)
|
||||
for b in range(self.nb):
|
||||
SC = stab_cholesky(self.C[b]*Constants.kb)
|
||||
self.s[b] = np.dot(SC, self.prng.gvec(self.s[b].shape))
|
||||
else:
|
||||
info("GLE additional DOFs initialized from input.", verbosity.medium)
|
||||
|
||||
prev_ethermo = self.ethermo
|
||||
|
||||
# creates a set of thermostats to be applied to individual normal modes
|
||||
self._thermos = [ThermoGLE(temp=1, dt=1, A=self.A[b], C=self.C[b]) for b in range(self.nb)]
|
||||
|
||||
# must pipe all the dependencies in such a way that values for the nm
|
||||
# thermostats are automatically updated based on the "master" thermostat
|
||||
def make_Agetter(k):
|
||||
return lambda: self.A[k]
|
||||
def make_Cgetter(k):
|
||||
return lambda: self.C[k]
|
||||
|
||||
it = 0
|
||||
for t in self._thermos:
|
||||
t.s = self.s[it] # gets the s's as a slice of self.s
|
||||
t.bind(pm=(nm.pnm[it,:],nm.dynm3[it,:]), prng=self.prng) # bind thermostat t to the it-th normal mode
|
||||
|
||||
# pipes temp and dt
|
||||
deppipe(self,"temp", t, "temp")
|
||||
deppipe(self,"dt", t, "dt")
|
||||
|
||||
# here we pipe the A and C of individual NM to the "master" arrays
|
||||
dget(t,"A").add_dependency(dget(self,"A"))
|
||||
dget(t,"A")._func = make_Agetter(it)
|
||||
dget(t,"C").add_dependency(dget(self,"C"))
|
||||
dget(t,"C")._func = make_Cgetter(it)
|
||||
dget(self,"ethermo").add_dependency(dget(t,"ethermo"))
|
||||
it += 1
|
||||
|
||||
# since the ethermo will be "delegated" to the normal modes thermostats,
|
||||
# one has to split
|
||||
# any previously-stored value between the sub-thermostats
|
||||
for t in self._thermos:
|
||||
t.ethermo = prev_ethermo/self.nb
|
||||
|
||||
dget(self,"ethermo")._func = self.get_ethermo;
|
||||
|
||||
def step(self):
|
||||
"""Updates the thermostat in NM representation by looping over the
|
||||
individual DOFs.
|
||||
"""
|
||||
|
||||
for t in self._thermos:
|
||||
t.step()
|
||||
|
||||
def get_ethermo(self):
|
||||
"""Computes the total energy transferred to the heat bath for all the nm
|
||||
thermostats.
|
||||
"""
|
||||
|
||||
et = 0.0;
|
||||
for t in self._thermos:
|
||||
et += t.ethermo
|
||||
return et
|
||||
|
||||
|
||||
class ThermoNMGLEG(ThermoNMGLE):
|
||||
"""Represents a 'normal-modes' GLE thermostat + SVR.
|
||||
|
||||
An extension to the above NMGLE thermostat which also adds a stochastic velocity
|
||||
rescaling to the centroid.
|
||||
|
||||
Depend objects:
|
||||
tau: Thermostat damping time scale. Larger values give a less strongly
|
||||
coupled thermostat.
|
||||
"""
|
||||
|
||||
def __init__(self, temp = 1.0, dt = 1.0, A = None, C = None, tau=1.0, ethermo=0.0):
|
||||
|
||||
super(ThermoNMGLEG,self).__init__(temp, dt, A, C, ethermo)
|
||||
dset(self,"tau",depend_value(value=tau,name='tau'))
|
||||
|
||||
def bind(self, nm=None, prng=None, fixdof=None):
|
||||
"""Binds the appropriate degrees of freedom to the thermostat.
|
||||
|
||||
This takes an object with degrees of freedom, and makes their momentum
|
||||
and mass vectors members of the thermostat. It also then creates the
|
||||
objects that will hold the data needed in the thermostat algorithms
|
||||
and the dependency network. Actually, this specific thermostat requires
|
||||
being called on a beads object.
|
||||
|
||||
Args:
|
||||
nm: An optional normal modes object to take the mass and momentum
|
||||
vectors from.
|
||||
prng: An optional pseudo random number generator object. Defaults to
|
||||
Random().
|
||||
fixdof: An optional integer which can specify the number of constraints
|
||||
applied to the system. Defaults to zero.
|
||||
"""
|
||||
|
||||
super(ThermoNMGLEG,self).bind(nm, prng, fixdof)
|
||||
|
||||
t = ThermoSVR(self.temp, self.dt, self.tau)
|
||||
|
||||
t.bind(pm=(nm.pnm[0,:],nm.dynm3[0,:]), prng=self.prng) # bind global thermostat to centroid
|
||||
|
||||
# pipes temp and dt
|
||||
deppipe(self,"temp", t, "temp")
|
||||
deppipe(self,"dt", t, "dt")
|
||||
deppipe(self,"tau", t, "tau")
|
||||
|
||||
dget(self,"ethermo").add_dependency(dget(t,"ethermo"))
|
||||
self._thermos.append(t)
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
-- Input files directory --
|
||||
|
||||
* This is the directory containing the input classes.
|
||||
|
||||
* Files:
|
||||
- atoms.py: Creates objects that deal with classical simulations.
|
||||
- barostats.py: Creates objects that deal with constant pressure and
|
||||
stress simulations.
|
||||
- beads.py: Creates objects that deal with quantum simulations.
|
||||
- cell.py: Creates objects that deal with the simulation box.
|
||||
- ensembles.py: Creates objects that deal with the different ensembles.
|
||||
- forces.py: Creates objects that deal with the jobs to send to
|
||||
the driver code.
|
||||
- initializer.py: Creates the objects that deal with initializing the
|
||||
simulation.
|
||||
- interface.py: Creates objects that deal with socket creation.
|
||||
- normalmodes.py: Creates the objects that deal with the normal mode
|
||||
transformation.
|
||||
- outputs.py: Creates objects that deal with output files.
|
||||
- prng.py: Creates the objects that deal with random number generation.
|
||||
- simulation.py: Creates objects that deal with all the top level
|
||||
information, such as input/output.
|
||||
- thermostats.py: Creates objects that deal with constant temperature
|
||||
simulations.
|
||||
@ -1,3 +0,0 @@
|
||||
__all__ = [ 'barostats', 'cell', 'simulation', 'ensembles', 'thermostats',
|
||||
'interface', 'forces', 'atoms', 'beads', 'prng', 'outputs',
|
||||
'normalmodes', 'initializer']
|
||||
@ -1,121 +0,0 @@
|
||||
"""Deals with creating the atoms class.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Generates an atoms class either from a set of positions and momenta.
|
||||
This class is only used if no beads tag is present in the xml file.
|
||||
|
||||
Classes:
|
||||
InputAtoms: Deals with creating the Atoms object from a file, and
|
||||
writing the checkpoints.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
from ipi.engine.atoms import *
|
||||
from ipi.utils.inputvalue import *
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils.units import unit_to_internal
|
||||
|
||||
__all__ = ['InputAtoms']
|
||||
|
||||
class InputAtoms(Input):
|
||||
"""Atoms input class.
|
||||
|
||||
Handles generating the appropriate atoms class from the xml input file,
|
||||
and generating the xml checkpoint tags and data from an instance of the
|
||||
object.
|
||||
|
||||
Attributes:
|
||||
natoms: An optional integer giving the number of atoms. Defaults to 0.
|
||||
q: An optional array giving the atom positions. Defaults to an empty
|
||||
array with no elements.
|
||||
p: An optional array giving the atom momenta. Defaults to an empty
|
||||
array with no elements.
|
||||
m: An optional array giving the atom masses. Defaults to an empty
|
||||
array with no elements.
|
||||
names: An optional array giving the atom names. Defaults to an empty
|
||||
array with no elements
|
||||
"""
|
||||
|
||||
fields={ "natoms" : (InputValue, {"dtype" : int,
|
||||
"default" : 0,
|
||||
"help" : "The number of atoms." }),
|
||||
"q" : (InputArray, {"dtype" : float,
|
||||
"default" : input_default(factory=np.zeros, args=(0,)),
|
||||
"help" : "The positions of the atoms, in the format [x1, y1, z1, x2, ... ].",
|
||||
"dimension" : "length" }),
|
||||
"p" : (InputArray, {"dtype" : float,
|
||||
"default" : input_default(factory=np.zeros, args=(0,)),
|
||||
"help" : "The momenta of the atoms, in the format [px1, py1, pz1, px2, ... ].",
|
||||
"dimension" : "momentum" }),
|
||||
"m" : (InputArray, {"dtype" : float,
|
||||
"default" : input_default(factory=np.zeros, args=(0,)),
|
||||
"help" : "The masses of the atoms, in the format [m1, m2, ... ].",
|
||||
"dimension" : "mass" }),
|
||||
"names" : (InputArray, {"dtype" : str,
|
||||
"default" : input_default(factory=np.zeros, args=(0,), kwargs = {'dtype': np.dtype('|S6')}),
|
||||
"help" : "The names of the atoms, in the format [name1, name2, ... ]." })
|
||||
}
|
||||
|
||||
default_help = "Deals with a single replica of the system or classical simulations."
|
||||
default_label = "ATOMS"
|
||||
|
||||
def store(self, atoms):
|
||||
"""Takes an Atoms instance and stores a minimal representation of it.
|
||||
|
||||
Args:
|
||||
atoms: An Atoms object from which to initialize from.
|
||||
filename: An optional string giving a filename to take the atom
|
||||
positions from. Defaults to ''.
|
||||
"""
|
||||
|
||||
super(InputAtoms,self).store()
|
||||
self.natoms.store(atoms.natoms)
|
||||
self.q.store(depstrip(atoms.q))
|
||||
self.p.store(depstrip(atoms.p))
|
||||
self.m.store(depstrip(atoms.m))
|
||||
self.names.store(depstrip(atoms.names))
|
||||
|
||||
def fetch(self):
|
||||
"""Creates an atoms object.
|
||||
|
||||
Returns:
|
||||
An atoms object of the appropriate type and with the appropriate
|
||||
properties given the attributes of the InputAtoms object.
|
||||
"""
|
||||
|
||||
super(InputAtoms,self).fetch()
|
||||
atoms = Atoms(self.natoms.fetch())
|
||||
atoms.q = self.q.fetch()
|
||||
atoms.p = self.p.fetch()
|
||||
atoms.m = self.m.fetch()
|
||||
atoms.names = self.names.fetch()
|
||||
return atoms
|
||||
|
||||
def write(self, name="", indent=""):
|
||||
"""Overloads Input write() function so that nothing is written if
|
||||
no atoms are present. This occurs if the beads object has been specified,
|
||||
so that the classical atoms object is not initialized.
|
||||
|
||||
Returns:
|
||||
A string giving the appropriate xml tags for the checkpoint file.
|
||||
"""
|
||||
|
||||
if self.natoms.fetch() > 0:
|
||||
return super(InputAtoms,self).write(name=name,indent=indent)
|
||||
else:
|
||||
return ""
|
||||
@ -1,107 +0,0 @@
|
||||
"""Deals with creating the barostat class.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Classes:
|
||||
InputBaro: Deals with creating the Barostat object from a file, and
|
||||
writing the checkpoints.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
import ipi.engine.thermostats
|
||||
from ipi.engine.barostats import *
|
||||
from ipi.utils.inputvalue import *
|
||||
from ipi.inputs.thermostats import *
|
||||
|
||||
__all__ = ['InputBaro']
|
||||
|
||||
class InputBaro(Input):
|
||||
"""Barostat input class.
|
||||
|
||||
Handles generating the appropriate barostat class from the xml input file,
|
||||
and generating the xml checkpoint tags and data from an
|
||||
instance of the object.
|
||||
|
||||
Attributes:
|
||||
mode: An optional string giving the type of barostat used. Defaults to
|
||||
'rigid'.
|
||||
|
||||
Fields:
|
||||
thermostat: A thermostat object giving the cell thermostat.
|
||||
tau: The time constant associated with the dynamics of the piston.
|
||||
p: The conjugate momentum to the volume degree of freedom.
|
||||
"""
|
||||
|
||||
attribs={ "mode": (InputAttribute, {"dtype" : str,
|
||||
"default" : "dummy",
|
||||
"help" : """The type of barostat. Currently, only a 'isotropic' barostat is implemented, that combines
|
||||
ideas from the Bussi-Zykova-Parrinello barostat for classical MD with ideas from the
|
||||
Martyna-Hughes-Tuckerman centroid barostat for PIMD; see Ceriotti, More, Manolopoulos, Comp. Phys. Comm. 2013 for
|
||||
implementation details.""",
|
||||
"options" : ["dummy", "isotropic"]}) }
|
||||
fields={ "thermostat": (InputThermo, {"default" : input_default(factory=ipi.engine.thermostats.Thermostat),
|
||||
"help" : "The thermostat for the cell. Keeps the cell velocity distribution at the correct temperature. Note that the 'pile_l', 'pile_g', 'nm_gle' and 'nm_gle_g' options will not work for this thermostat."}),
|
||||
"tau": (InputValue, {"default" : 1.0,
|
||||
"dtype" : float,
|
||||
"dimension" : "time",
|
||||
"help" : "The time constant associated with the dynamics of the piston."}),
|
||||
"p": (InputArray, { "dtype" : float,
|
||||
"default" : input_default(factory=np.zeros, args = (0,)),
|
||||
"help" : "Momentum (or momenta) of the piston.",
|
||||
"dimension" : "momentum" })
|
||||
}
|
||||
|
||||
default_help = "Simulates an external pressure bath."
|
||||
default_label = "BAROSTAT"
|
||||
|
||||
def store(self, baro):
|
||||
"""Takes a barostat instance and stores a minimal representation of it.
|
||||
|
||||
Args:
|
||||
baro: A barostat object.
|
||||
"""
|
||||
|
||||
super(InputBaro,self).store(baro)
|
||||
self.thermostat.store(baro.thermostat)
|
||||
self.tau.store(baro.tau)
|
||||
if type(baro) is BaroBZP:
|
||||
self.mode.store("isotropic")
|
||||
self.p.store(baro.p)
|
||||
elif type(baro) is Barostat:
|
||||
self.mode.store("dummy")
|
||||
else:
|
||||
raise TypeError("The type " + type(baro).__name__ + " is not a valid barostat type")
|
||||
|
||||
|
||||
def fetch(self):
|
||||
"""Creates a barostat object.
|
||||
|
||||
Returns:
|
||||
A barostat object of the appropriate type and with the appropriate
|
||||
thermostat given the attributes of the InputBaro object.
|
||||
"""
|
||||
|
||||
super(InputBaro,self).fetch()
|
||||
if self.mode.fetch() == "isotropic":
|
||||
baro = BaroBZP(thermostat=self.thermostat.fetch(), tau=self.tau.fetch())
|
||||
if self.p._explicit: baro.p = self.p.fetch()
|
||||
elif self.mode.fetch() == "dummy":
|
||||
baro = Barostat(thermostat=self.thermostat.fetch(), tau=self.tau.fetch())
|
||||
else:
|
||||
raise ValueError(self.mode.fetch() + " is not a valid mode of barostat")
|
||||
|
||||
return baro
|
||||
@ -1,137 +0,0 @@
|
||||
"""Deals with creating the beads class.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Classes:
|
||||
InputBeads: Deals with creating the Beads object from a file, and
|
||||
writing the checkpoints.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
from ipi.engine.beads import *
|
||||
from ipi.engine.atoms import Atoms
|
||||
from ipi.utils.inputvalue import *
|
||||
from ipi.utils.depend import *
|
||||
from ipi.utils.units import *
|
||||
from ipi.inputs.atoms import *
|
||||
|
||||
__all__ = ['InputBeads']
|
||||
|
||||
class InputBeads(Input):
|
||||
"""Beads input class.
|
||||
|
||||
Handles generating the appropriate beads class from the xml input file,
|
||||
and generating the xml checkpoint tags and data from an instance of the
|
||||
object.
|
||||
|
||||
Attributes:
|
||||
nbeads: An optional integer giving the number of beads. Defaults to 0.
|
||||
natoms: An optional integer giving the number of atoms. Defaults to 0.
|
||||
|
||||
Fields:
|
||||
q: An optional array giving the bead positions. Defaults to an empty
|
||||
array with no elements.
|
||||
p: An optional array giving the bead momenta. Defaults to an empty
|
||||
array with no elements.
|
||||
m: An optional array giving the bead masses. Defaults to an empty array
|
||||
with no elements.
|
||||
names: An optional array giving the bead names. Defaults to an empty
|
||||
array with no elements.
|
||||
"""
|
||||
|
||||
attribs = { "natoms" : (InputAttribute, {"dtype" : int, "default" : 0,
|
||||
"help" : "The number of atoms."}),
|
||||
"nbeads" : (InputAttribute, {"dtype" : int, "default" : 0,
|
||||
"help" : "The number of beads."})
|
||||
}
|
||||
fields={ "q" : (InputArray, {"dtype" : float,
|
||||
"default" : input_default(factory=np.zeros, args = (0,)),
|
||||
"help" : "The positions of the beads. In an array of size [nbeads, 3*natoms].",
|
||||
"dimension" : "length"}),
|
||||
"p" : (InputArray, {"dtype" : float,
|
||||
"default" : input_default(factory=np.zeros, args = (0,)),
|
||||
"help" : "The momenta of the beads. In an array of size [nbeads, 3*natoms].",
|
||||
"dimension" : "momentum"}),
|
||||
"m" : (InputArray, {"dtype" : float,
|
||||
"default" : input_default(factory=np.zeros, args = (0,)),
|
||||
"help" : "The masses of the atoms, in the format [m1, m2, ... ].",
|
||||
"dimension" : "mass"}),
|
||||
"names" : (InputArray, {"dtype" : str,
|
||||
"default" : input_default(factory=np.zeros, args=(0,), kwargs={'dtype': np.dtype('|S6')}),
|
||||
"help" : "The names of the atoms, in the format [name1, name2, ... ]."}) }
|
||||
|
||||
default_help = "Describes the bead configurations in a path integral simulation."
|
||||
default_label = "BEADS"
|
||||
|
||||
|
||||
def store(self, beads):
|
||||
"""Takes a Beads instance and stores a minimal representation of it.
|
||||
|
||||
Args:
|
||||
beads: A Beads object from which to initialize from.
|
||||
"""
|
||||
|
||||
super(InputBeads,self).store()
|
||||
self.natoms.store(beads.natoms)
|
||||
self.nbeads.store(beads.nbeads)
|
||||
|
||||
self.q.store(depstrip(beads.q))
|
||||
self.p.store(depstrip(beads.p))
|
||||
self.m.store(depstrip(beads.m))
|
||||
self.names.store(depstrip(beads.names))
|
||||
|
||||
def fetch(self):
|
||||
"""Creates a beads object.
|
||||
|
||||
Returns:
|
||||
A beads object of the appropriate type and with the appropriate
|
||||
properties given the attributes of the InputBeads object.
|
||||
"""
|
||||
|
||||
super(InputBeads,self).fetch()
|
||||
beads = Beads(self.natoms.fetch(),self.nbeads.fetch())
|
||||
|
||||
# tries to fill up with as much data as available and valid
|
||||
q = self.q.fetch()
|
||||
if (q.shape == (beads.nbeads,3*beads.natoms)):
|
||||
beads.q = q
|
||||
elif (beads.nbeads == 1 and q.shape == (3*beads.natoms,)):
|
||||
beads.q = q
|
||||
elif len(q) != 0:
|
||||
raise ValueError("Array shape mismatches for q in <beads> input.")
|
||||
|
||||
p = self.p.fetch()
|
||||
if (p.shape == (beads.nbeads,3*beads.natoms)):
|
||||
beads.p = p
|
||||
elif (beads.nbeads == 1 and p.shape == (3*beads.natoms,)):
|
||||
beads.p = p
|
||||
elif len(p) != 0:
|
||||
raise ValueError("Array shape mismatches for p in <beads> input.")
|
||||
|
||||
m = self.m.fetch()
|
||||
if (m.shape == (beads.natoms,)):
|
||||
beads.m = m
|
||||
elif len(m) != 0:
|
||||
raise ValueError("Array shape mismatches for m in <beads> input.")
|
||||
|
||||
n = self.names.fetch()
|
||||
if (n.shape == (beads.natoms,)):
|
||||
beads.names = n
|
||||
elif len(n) != 0:
|
||||
raise ValueError("Array shape mismatches for names in <beads> input.")
|
||||
|
||||
return beads
|
||||
@ -1,77 +0,0 @@
|
||||
"""Deals with creating the cell class.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Generates an cell class from a cell vector.
|
||||
|
||||
Classes:
|
||||
InputCell: Deals with creating the Cell object from a file, and
|
||||
writing the checkpoints.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
from copy import copy
|
||||
from ipi.engine.cell import *
|
||||
from ipi.utils.inputvalue import *
|
||||
from ipi.utils.units import UnitMap
|
||||
from ipi.utils.messages import verbosity, warning
|
||||
|
||||
__all__ = [ 'InputCell' ]
|
||||
|
||||
class InputCell(InputArray):
|
||||
"""Cell input class.
|
||||
|
||||
Handles generating the appropriate cell class from the xml input file,
|
||||
and generating the xml checkpoint tags and data from an instance of the
|
||||
object.
|
||||
"""
|
||||
|
||||
attribs = copy(InputArray.attribs)
|
||||
|
||||
default_help = "Deals with the cell parameters. Takes as array which can be used to initialize the cell vector matrix."
|
||||
default_label = "CELL"
|
||||
|
||||
def __init__(self, help=None, dimension=None, units=None, default=None, dtype=None):
|
||||
"""Initializes InputCell.
|
||||
|
||||
Just calls the parent initialization function with appropriate arguments.
|
||||
"""
|
||||
|
||||
super(InputCell,self).__init__(dtype=float, dimension="length", default=default, help=help)
|
||||
|
||||
def store(self, cell):
|
||||
"""Takes a Cell instance and stores of minimal representation of it.
|
||||
|
||||
Args:
|
||||
cell: A cell object.
|
||||
"""
|
||||
|
||||
super(InputCell,self).store(cell.h)
|
||||
self.shape.store((3,3))
|
||||
|
||||
def fetch(self):
|
||||
"""Creates a cell object.
|
||||
|
||||
Returns:
|
||||
A cell object of the appropriate type and with the appropriate
|
||||
properties given the attributes of the InputCell object.
|
||||
"""
|
||||
|
||||
h = super(InputCell,self).fetch()
|
||||
h.shape = (3,3)
|
||||
|
||||
return Cell(h=h)
|
||||
@ -1,185 +0,0 @@
|
||||
"""Deals with creating the ensembles class.
|
||||
|
||||
Copyright (C) 2013, Joshua More and Michele Ceriotti
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http.//www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Classes:
|
||||
InputEnsemble: Deals with creating the Ensemble object from a file, and
|
||||
writing the checkpoints.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
import ipi.engine.thermostats
|
||||
import ipi.engine.initializer
|
||||
import ipi.engine.barostats
|
||||
from ipi.engine.ensembles import *
|
||||
from ipi.utils.inputvalue import *
|
||||
from ipi.inputs.barostats import *
|
||||
from ipi.inputs.thermostats import *
|
||||
from ipi.inputs.initializer import *
|
||||
from ipi.utils.units import *
|
||||
|
||||
__all__ = ['InputEnsemble']
|
||||
|
||||
class InputEnsemble(Input):
|
||||
"""Ensemble input class.
|
||||
|
||||
Handles generating the appropriate ensemble class from the xml input file,
|
||||
and generating the xml checkpoint tags and data from an instance of the
|
||||
object.
|
||||
|
||||
Attributes:
|
||||
mode: An optional string giving the mode of ensemble to be simulated.
|
||||
Defaults to 'unknown'.
|
||||
|
||||
Fields:
|
||||
thermostat: The thermostat to be used for constant temperature dynamics.
|
||||
barostat: The barostat to be used for constant pressure or stress
|
||||
dynamics.
|
||||
timestep: An optional float giving the size of the timestep in atomic
|
||||
units. Defaults to 1.0.
|
||||
temperature: An optional float giving the temperature in Kelvin. Defaults
|
||||
to 1.0.
|
||||
pressure: An optional float giving the external pressure in atomic units.
|
||||
Defaults to 1.0.
|
||||
fixcom: An optional boolean which decides whether the centre of mass
|
||||
motion will be constrained or not. Defaults to False.
|
||||
replay_file: An optional string that gives an input file name to get
|
||||
a trajectory to be re-run.
|
||||
"""
|
||||
|
||||
attribs={"mode" : (InputAttribute, {"dtype" : str,
|
||||
"help" : "The ensemble that will be sampled during the simulation. 'replay' means that a simulation is restarted from a previous simulation.",
|
||||
"options" : ['nve', 'nvt', 'npt', 'replay']}) }
|
||||
fields={"thermostat" : (InputThermo, {"default" : input_default(factory=ipi.engine.thermostats.Thermostat),
|
||||
"help" : "The thermostat for the atoms, keeps the atom velocity distribution at the correct temperature."} ),
|
||||
"barostat" : (InputBaro, {"default" : input_default(factory=ipi.engine.barostats.Barostat),
|
||||
"help" : InputBaro.default_help}),
|
||||
"timestep": (InputValue, {"dtype" : float,
|
||||
"default" : 1.0,
|
||||
"help" : "The time step.",
|
||||
"dimension" : "time"}),
|
||||
"temperature" : (InputValue, {"dtype" : float,
|
||||
"default" : 1.0,
|
||||
"help" : "The temperature of the system.",
|
||||
"dimension" : "temperature"}),
|
||||
"pressure" : (InputValue, {"dtype" : float,
|
||||
"default" : 1.0,
|
||||
"help" : "The external pressure.",
|
||||
"dimension" : "pressure"}),
|
||||
"fixcom": (InputValue, {"dtype" : bool,
|
||||
"default" : True,
|
||||
"help" : "This describes whether the centre of mass of the particles is fixed."}),
|
||||
"replay_file": (InputInitFile, {"default" : input_default(factory=ipi.engine.initializer.InitBase),
|
||||
"help" : "This describes the location to read a trajectory file from."})
|
||||
}
|
||||
|
||||
default_help = "Holds all the information that is ensemble specific, such as the temperature and the external pressure, and the thermostats and barostats that control it."
|
||||
default_label = "ENSEMBLE"
|
||||
|
||||
def store(self, ens):
|
||||
"""Takes an ensemble instance and stores a minimal representation of it.
|
||||
|
||||
Args:
|
||||
ens: An ensemble object.
|
||||
"""
|
||||
|
||||
super(InputEnsemble,self).store(ens)
|
||||
if type(ens) is ReplayEnsemble:
|
||||
self.mode.store("rerun")
|
||||
tens = 0
|
||||
elif type(ens) is NVEEnsemble:
|
||||
self.mode.store("nve")
|
||||
tens = 1
|
||||
elif type(ens) is NVTEnsemble:
|
||||
self.mode.store("nvt")
|
||||
tens = 2
|
||||
elif type(ens) is NPTEnsemble:
|
||||
self.mode.store("npt")
|
||||
tens = 3
|
||||
|
||||
self.timestep.store(ens.dt)
|
||||
self.temperature.store(ens.temp)
|
||||
|
||||
if tens == 0:
|
||||
self.replay_file.store(ens.intraj)
|
||||
if tens > 1:
|
||||
self.thermostat.store(ens.thermostat)
|
||||
self.fixcom.store(ens.fixcom)
|
||||
if tens > 2:
|
||||
self.barostat.store(ens.barostat)
|
||||
if tens == 3:
|
||||
self.pressure.store(ens.pext)
|
||||
|
||||
|
||||
def fetch(self):
|
||||
"""Creates an ensemble object.
|
||||
|
||||
Returns:
|
||||
An ensemble object of the appropriate mode and with the appropriate
|
||||
objects given the attributes of the InputEnsemble object.
|
||||
"""
|
||||
|
||||
super(InputEnsemble,self).fetch()
|
||||
|
||||
if self.mode.fetch() == "nve" :
|
||||
ens = NVEEnsemble(dt=self.timestep.fetch(),
|
||||
temp=self.temperature.fetch(), fixcom=self.fixcom.fetch())
|
||||
elif self.mode.fetch() == "nvt" :
|
||||
ens = NVTEnsemble(dt=self.timestep.fetch(),
|
||||
temp=self.temperature.fetch(), thermostat=self.thermostat.fetch(), fixcom=self.fixcom.fetch())
|
||||
elif self.mode.fetch() == "npt" :
|
||||
ens = NPTEnsemble(dt=self.timestep.fetch(),
|
||||
temp=self.temperature.fetch(), thermostat=self.thermostat.fetch(), fixcom=self.fixcom.fetch(),
|
||||
pext=self.pressure.fetch(), barostat=self.barostat.fetch() )
|
||||
elif self.mode.fetch() == "replay":
|
||||
ens = ReplayEnsemble(dt=self.timestep.fetch(),
|
||||
temp=self.temperature.fetch(),fixcom=False,intraj=self.replay_file.fetch() )
|
||||
else:
|
||||
raise ValueError("'" + self.mode.fetch() + "' is not a supported ensemble mode.")
|
||||
|
||||
return ens
|
||||
|
||||
def check(self):
|
||||
"""Function that deals with optional arguments.
|
||||
|
||||
Makes sure that if the ensemble requires a thermostat or barostat that
|
||||
they have been defined by the user and not given the default values.
|
||||
"""
|
||||
|
||||
super(InputEnsemble,self).check()
|
||||
if self.mode.fetch() == "nvt":
|
||||
if self.thermostat._explicit == False:
|
||||
raise ValueError("No thermostat tag supplied for NVT simulation")
|
||||
if self.mode.fetch() == "npt":
|
||||
if self.thermostat._explicit == False:
|
||||
raise ValueError("No thermostat tag supplied for NPT simulation")
|
||||
if self.barostat._explicit == False:
|
||||
raise ValueError("No barostat tag supplied for NPT simulation")
|
||||
if self.barostat.thermostat._explicit == False:
|
||||
raise ValueError("No thermostat tag supplied in barostat for NPT simulation")
|
||||
|
||||
if self.timestep.fetch() <= 0:
|
||||
raise ValueError("Non-positive timestep specified.")
|
||||
if self.temperature.fetch() <= 0:
|
||||
raise ValueError("Non-positive temperature specified.")
|
||||
|
||||
if self.mode.fetch() == "npt":
|
||||
if not self.pressure._explicit:
|
||||
raise ValueError("Pressure should be supplied for constant pressure simulation")
|
||||
if self.mode.fetch() == "npt" or self.mode.fetch() == "nvt":
|
||||
if not self.temperature._explicit:
|
||||
raise ValueError("Temperature should be supplied for constant temperature simulation")
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user